Пример #1
0
        public GameState(IntPtr nativePtr)
            : base(nativePtr)
        {
            _scene = new CombatScene(0, this);

            _scene.AddSystem <CharacterCameraSystem>();
            var playerCtrlSystem = _scene.AddSystem <PlayerControllerSystem>();

            //    ControllerSystem ctrlSystem =_scene.AddSystem<ControllerSystem>();

            _entityBase = _scene.CreateEntity();

            _cameraRender = (CameraRenderable)_entityBase.Assign_Component(new CameraRenderable());
            _camera       = (CameraFree)_entityBase.Assign_Component(new CameraFree(_entityBase, _cameraRender));

            _controller = (Controller)_entityBase.Assign_Component(new Controller(_entityBase));
            _player     = (PlayerComponent)_entityBase.Assign_Component(new PlayerComponent(_entityBase));

            _entityBase.Assign_Component(new NetIdComponent(_entityBase));

            _player.PlayerSetActionMap(_controller);
            _screen = _entityBase.Assign_ScreenComponent(_cameraRender);

            playerCtrlSystem.SetBasicInputEvents(_controller);
            //   CtrlSetBasicInputEvents(_controller.CPointer, "E:\\Projekte\\coop\\XEngine\\data\\Test\\XETController\\Controller.cfg");

            _screen.AddUIState(_entityBase);


            _NetObserver = new NetObserver(this);
        }
Пример #2
0
        public void Draw(CameraFree camera)
        {
            device.SetVertexBuffer(this.vertexBuffer);

            effect.World              = world;
            effect.View               = camera.GetView();
            effect.Projection         = camera.GetProjection();
            effect.VertexColorEnabled = true;

            foreach (EffectPass i in this.effect.CurrentTechnique.Passes)
            {
                i.Apply();
                this.device.DrawUserPrimitives <VertexPositionColor>(PrimitiveType.TriangleStrip, verts, 0, 1);
            }
        }
Пример #3
0
        public void UpdateActionMap(Entity entity, float dt)
        {
            Controller ctrl       = (Controller)entity.GetComponent <Controller>();
            var        player     = entity.GetComponent <PlayerComponent>();
            CameraFree cameraFree = (CameraFree)entity.GetComponent <CameraFree>();
            var        netID      = entity.GetComponent <NetIdComponent>();

            if (ctrl == null || player == null)
            {
                return;
            }

            if (netID != null)
            {
                //normally the client just send events to the server
                //for debugging and developement it should be possible to send body pos,rot,loc etc.
                if (netID.ID == 0)
                {
                    //      PrefabMsg.SendLogin(netID);
                }

                //logged in
                if (netID.ID > 0)
                {
                    //FlatBuffers.FlatBufferBuilder fbb = new FlatBuffers.FlatBufferBuilder(4);
                    //InputEvent.StartInputEvent(fbb);
                    //InputEvent.AddActionType(fbb, ControllerSettings.ActionType.BackwardRight); // BackwardRight gibts nicht!!
                    //InputEvent.AddActionData(fbb, Vec3f.CreateVec3f(fbb, 0, 0, 0));
                    //var ievt = InputEvent.EndInputEvent(fbb);
                    //fbb.Finish(ievt.Value);//important!

                    //MessageRoot.CreateMessageRoot(fbb, netID.ID, 0, Data.Login, ievt.Value);

                    //UnityContainer.Get().Engine.SendToServer(netID, fbb.SizedByteArray(), (uint)fbb.SizedByteArray().Length);
                }
            }

            Player_UpdateActionMap(CPointer, entity.CPointer, dt);

            if (Player_AMap_IsActive(ctrl.CPointer, ActionType.Forward))
            {
                if (cameraFree != null)
                {
                    cameraFree.CameraNode.Translate(new Vector3(0, 0, 1));
                }
            }
            if (Player_AMap_IsActive(ctrl.CPointer, ActionType.Backward))
            {
                if (cameraFree != null)
                {
                    cameraFree.CameraNode.Translate(new Vector3(0, 0, -1));
                }
            }

            if (Player_AMap_IsActive(ctrl.CPointer, ActionType.TurnLeft))
            {
                if (cameraFree != null)
                {
                    cameraFree.CameraNode.Translate(new Vector3(-1, 0, 0));
                }
            }

            if (Player_AMap_IsActive(ctrl.CPointer, ActionType.TurnRight))
            {
                if (cameraFree != null)
                {
                    cameraFree.CameraNode.Translate(new Vector3(1, 0, 0));
                }
            }


            if (Player_AMap_IsActive(ctrl.CPointer, ActionType.CamRotate))
            {
                var pos = ctrl.GetMousePosition();
                if (_lastMousePosition != pos && _lastMousePosition != new Vector2(0, 0))
                {
                    ctrl.SetMousePosition(_lastMousePosition);
                    var delta = _lastMousePosition - pos;

                    cameraFree.CameraNode.Rotate(delta.X, delta.Y);
                }
            }
            else
            {
                _lastMousePosition = ctrl.GetMousePosition();

                //       Debug.WriteLine("LastMousePos:" + _lastMousePosition.ToString());
            }
        }
Пример #4
0
        public static void LoadContent(ContentManager content)
        {
            freeCamera   = new CameraFree(Vector3.Backward * 20, Vector3.Zero);
            chopCamera   = new CameraChopper(new Vector3(-1.6f, 3, 4.5f), Vector3.Forward * 10);
            actualCamera = freeCamera;

            //TODO: Create Objects to include on set
            chooper = new Chopper(@"Texture\camo", @"Texture\camo_snow");
            #region set do helicoptero
            List <Quad> heliBody = new List <Quad>
            {
                #region heli body
                new Quad(new Vector3(-0.50f, -0.00f, 1.50f),
                         new Vector3(-0.50f, 0.20f, 1.50f),
                         new Vector3(-0.70f, 0.20f, 1.50f),
                         new Vector3(-0.70f, -0.00f, 1.50f)
                         , ""),

                new Quad(new Vector3(-1.00f, 0.60f, -0.50f),
                         new Vector3(-1.00f, 2.60f, -0.50f),
                         new Vector3(1.00f, 2.60f, -0.50f),
                         new Vector3(1.00f, 0.60f, -0.50f)
                         , ""),

                new Quad(new Vector3(-0.70f, -0.00f, 1.50f),
                         new Vector3(-0.70f, 0.20f, 1.50f),
                         new Vector3(-0.70f, 0.20f, -0.50f),
                         new Vector3(-0.70f, 0.00f, -0.50f)
                         , ""),

                new Quad(new Vector3(-1.00f, 2.60f, 0.50f),
                         new Vector3(1.00f, 2.60f, 0.50f),
                         new Vector3(1.00f, 2.60f, -0.50f),
                         new Vector3(-1.00f, 2.60f, -0.50f)
                         , ""),

                new Quad(new Vector3(-0.50f, 0.20f, -0.30f),
                         new Vector3(-0.70f, 0.20f, -0.30f),
                         new Vector3(-0.70f, 0.60f, -0.30f),
                         new Vector3(-0.50f, 0.60f, -0.30f)
                         , ""),

                new Quad(new Vector3(-0.70f, 0.00f, -0.50f),
                         new Vector3(-0.70f, 0.20f, -0.50f),
                         new Vector3(-0.50f, 0.20f, -0.50f),
                         new Vector3(-0.50f, 0.00f, -0.50f)
                         , ""),

                new Quad(new Vector3(-0.50f, 0.00f, -0.50f),
                         new Vector3(-0.50f, -0.00f, 1.50f),
                         new Vector3(-0.70f, -0.00f, 1.50f),
                         new Vector3(-0.70f, 0.00f, -0.50f)
                         , ""),

                new Quad(new Vector3(-0.50f, -0.00f, 1.50f),
                         new Vector3(-0.50f, 0.00f, -0.50f),
                         new Vector3(-0.50f, 0.20f, -0.50f),
                         new Vector3(-0.50f, 0.20f, 1.50f)
                         , ""),

                new Quad(new Vector3(-0.50f, 0.20f, 1.50f),
                         new Vector3(-0.50f, 0.20f, -0.50f),
                         new Vector3(-0.70f, 0.20f, -0.50f),
                         new Vector3(-0.70f, 0.20f, 1.50f)
                         , ""),

                new Quad(new Vector3(-0.70f, 0.20f, 1.00f),
                         new Vector3(-0.70f, 0.20f, 1.30f),
                         new Vector3(-0.70f, 0.60f, 1.30f),
                         new Vector3(-0.70f, 0.60f, 1.00f)
                         , ""),

                new Quad(new Vector3(-0.09f, 0.62f, -3.50f),
                         new Vector3(-0.09f, 1.58f, -3.50f),
                         new Vector3(0.09f, 1.58f, -3.50f),
                         new Vector3(0.09f, 0.62f, -3.50f)
                         , ""),

                new Quad(new Vector3(0.30f, 0.80f, -0.50f),
                         new Vector3(-0.30f, 0.80f, -0.50f),
                         new Vector3(-0.09f, 0.80f, -2.50f),
                         new Vector3(0.09f, 0.80f, -2.50f)
                         , ""),

                new Quad(new Vector3(-0.30f, 0.80f, -0.50f),
                         new Vector3(-0.30f, 1.40f, -0.50f),
                         new Vector3(-0.09f, 1.40f, -2.50f),
                         new Vector3(-0.09f, 0.80f, -2.50f)
                         , ""),

                new Quad(new Vector3(-0.50f, 0.20f, 1.00f),
                         new Vector3(-0.70f, 0.20f, 1.00f),
                         new Vector3(-0.70f, 0.60f, 1.00f),
                         new Vector3(-0.50f, 0.60f, 1.00f)
                         , ""),

                new Quad(new Vector3(-0.50f, 0.20f, -0.00f),
                         new Vector3(-0.50f, 0.20f, -0.30f),
                         new Vector3(-0.50f, 0.60f, -0.30f),
                         new Vector3(-0.50f, 0.60f, -0.00f)
                         , ""),

                new Quad(new Vector3(-0.70f, 0.20f, -0.30f),
                         new Vector3(-0.70f, 0.20f, -0.00f),
                         new Vector3(-0.70f, 0.60f, -0.00f),
                         new Vector3(-0.70f, 0.60f, -0.30f)
                         , ""),

                new Quad(new Vector3(-0.50f, 0.20f, 1.30f),
                         new Vector3(-0.50f, 0.20f, 1.00f),
                         new Vector3(-0.50f, 0.60f, 1.00f),
                         new Vector3(-0.50f, 0.60f, 1.30f)
                         , ""),

                new Quad(new Vector3(-0.70f, 0.20f, -0.00f),
                         new Vector3(-0.50f, 0.20f, -0.00f),
                         new Vector3(-0.50f, 0.60f, -0.00f),
                         new Vector3(-0.70f, 0.60f, -0.00f)
                         , ""),

                new Quad(new Vector3(-0.70f, 0.20f, 1.30f),
                         new Vector3(-0.50f, 0.20f, 1.30f),
                         new Vector3(-0.50f, 0.60f, 1.30f),
                         new Vector3(-0.70f, 0.60f, 1.30f)
                         , ""),

                new Quad(new Vector3(1.00f, 0.60f, 1.50f),
                         new Vector3(1.00f, 1.50f, 1.50f),
                         new Vector3(-1.00f, 1.50f, 1.50f),
                         new Vector3(-1.00f, 0.60f, 1.50f)
                         , ""),

                new Quad(new Vector3(1.00f, 0.60f, 1.50f),
                         new Vector3(-1.00f, 0.60f, 1.50f),
                         new Vector3(-1.00f, 0.60f, -0.50f),
                         new Vector3(1.00f, 0.60f, -0.50f)
                         , ""),

                new Quad(new Vector3(-0.09f, 1.58f, -2.50f),
                         new Vector3(0.09f, 1.58f, -2.50f),
                         new Vector3(0.09f, 1.58f, -3.50f),
                         new Vector3(-0.09f, 1.58f, -3.50f)
                         , ""),

                new Quad(new Vector3(-0.09f, 0.62f, -2.50f),
                         new Vector3(0.09f, 0.62f, -2.50f),
                         new Vector3(0.09f, 1.58f, -2.50f),
                         new Vector3(-0.09f, 1.58f, -2.50f)
                         , ""),

                new Quad(new Vector3(-0.30f, 1.40f, -0.50f),
                         new Vector3(0.30f, 1.40f, -0.50f),
                         new Vector3(0.09f, 1.40f, -2.50f),
                         new Vector3(-0.09f, 1.40f, -2.50f)
                         , ""),

                new Quad(new Vector3(-0.09f, 0.80f, -3.30f),
                         new Vector3(-0.09f, 0.80f, -2.70f),
                         new Vector3(0.00f, 0.80f, -2.70f),
                         new Vector3(0.00f, 0.80f, -3.30f)
                         , ""),

                new Quad(new Vector3(0.09f, 0.62f, -2.50f),
                         new Vector3(-0.09f, 0.62f, -2.50f),
                         new Vector3(-0.09f, 0.62f, -3.50f),
                         new Vector3(0.09f, 0.62f, -3.50f)
                         , ""),

                new Quad(new Vector3(-0.09f, 1.40f, -2.70f),
                         new Vector3(-0.09f, 0.80f, -2.70f),
                         new Vector3(-0.09f, 0.62f, -2.50f),
                         new Vector3(-0.09f, 1.58f, -2.50f)
                         , ""),

                new Quad(new Vector3(-0.09f, 0.80f, -3.30f),
                         new Vector3(-0.09f, 1.40f, -3.30f),
                         new Vector3(-0.09f, 1.58f, -3.50f),
                         new Vector3(-0.09f, 0.62f, -3.50f)
                         , ""),

                new Quad(new Vector3(-0.09f, 0.80f, -2.70f),
                         new Vector3(-0.09f, 0.80f, -3.30f),
                         new Vector3(-0.09f, 0.62f, -3.50f),
                         new Vector3(-0.09f, 0.62f, -2.50f)
                         , ""),

                new Quad(new Vector3(-0.09f, 1.40f, -3.30f),
                         new Vector3(-0.09f, 1.40f, -2.70f),
                         new Vector3(-0.09f, 1.58f, -2.50f),
                         new Vector3(-0.09f, 1.58f, -3.50f)
                         , ""),

                new Quad(new Vector3(-0.09f, 0.80f, -2.70f),
                         new Vector3(-0.09f, 1.40f, -2.70f),
                         new Vector3(0.00f, 1.40f, -2.70f),
                         new Vector3(0.00f, 0.80f, -2.70f)
                         , ""),

                new Quad(new Vector3(-0.09f, 1.40f, -2.70f),
                         new Vector3(-0.09f, 1.40f, -3.30f),
                         new Vector3(0.00f, 1.40f, -3.30f),
                         new Vector3(0.00f, 1.40f, -2.70f)
                         , ""),

                new Quad(new Vector3(-0.09f, 1.40f, -3.30f),
                         new Vector3(-0.09f, 0.80f, -3.30f),
                         new Vector3(0.00f, 0.80f, -3.30f),
                         new Vector3(0.00f, 1.40f, -3.30f)
                         , ""),

                new Quad(new Vector3(0.50f, -0.00f, 1.50f),
                         new Vector3(0.70f, -0.00f, 1.50f),
                         new Vector3(0.70f, 0.20f, 1.50f),
                         new Vector3(0.50f, 0.20f, 1.50f)
                         , ""),

                new Quad(new Vector3(0.70f, -0.00f, 1.50f),
                         new Vector3(0.70f, 0.00f, -0.50f),
                         new Vector3(0.70f, 0.20f, -0.50f),
                         new Vector3(0.70f, 0.20f, 1.50f)
                         , ""),

                new Quad(new Vector3(0.50f, 0.20f, -0.30f),
                         new Vector3(0.50f, 0.60f, -0.30f),
                         new Vector3(0.70f, 0.60f, -0.30f),
                         new Vector3(0.70f, 0.20f, -0.30f)
                         , ""),

                new Quad(new Vector3(0.70f, 0.00f, -0.50f),
                         new Vector3(0.50f, 0.00f, -0.50f),
                         new Vector3(0.50f, 0.20f, -0.50f),
                         new Vector3(0.70f, 0.20f, -0.50f)
                         , ""),

                new Quad(new Vector3(0.50f, 0.00f, -0.50f),
                         new Vector3(0.70f, 0.00f, -0.50f),
                         new Vector3(0.70f, -0.00f, 1.50f),
                         new Vector3(0.50f, -0.00f, 1.50f)
                         , ""),

                new Quad(new Vector3(0.50f, -0.00f, 1.50f),
                         new Vector3(0.50f, 0.20f, 1.50f),
                         new Vector3(0.50f, 0.20f, -0.50f),
                         new Vector3(0.50f, 0.00f, -0.50f)
                         , ""),

                new Quad(new Vector3(0.50f, 0.20f, 1.50f),
                         new Vector3(0.70f, 0.20f, 1.50f),
                         new Vector3(0.70f, 0.20f, -0.50f),
                         new Vector3(0.50f, 0.20f, -0.50f)
                         , ""),

                new Quad(new Vector3(0.70f, 0.20f, 1.00f),
                         new Vector3(0.70f, 0.60f, 1.00f),
                         new Vector3(0.70f, 0.60f, 1.30f),
                         new Vector3(0.70f, 0.20f, 1.30f)
                         , ""),

                new Quad(new Vector3(0.30f, 0.80f, -0.50f),
                         new Vector3(0.09f, 0.80f, -2.50f),
                         new Vector3(0.09f, 1.40f, -2.50f),
                         new Vector3(0.30f, 1.40f, -0.50f)
                         , ""),

                new Quad(new Vector3(0.50f, 0.20f, 1.00f),
                         new Vector3(0.50f, 0.60f, 1.00f),
                         new Vector3(0.70f, 0.60f, 1.00f),
                         new Vector3(0.70f, 0.20f, 1.00f)
                         , ""),

                new Quad(new Vector3(0.50f, 0.20f, 0.00f),
                         new Vector3(0.50f, 0.60f, 0.00f),
                         new Vector3(0.50f, 0.60f, -0.30f),
                         new Vector3(0.50f, 0.20f, -0.30f)
                         , ""),

                new Quad(new Vector3(0.70f, 0.20f, -0.30f),
                         new Vector3(0.70f, 0.60f, -0.30f),
                         new Vector3(0.70f, 0.60f, 0.00f),
                         new Vector3(0.70f, 0.20f, 0.00f)
                         , ""),

                new Quad(new Vector3(0.50f, 0.20f, 1.30f),
                         new Vector3(0.50f, 0.60f, 1.30f),
                         new Vector3(0.50f, 0.60f, 1.00f),
                         new Vector3(0.50f, 0.20f, 1.00f)
                         , ""),

                new Quad(new Vector3(0.70f, 0.20f, 0.00f),
                         new Vector3(0.70f, 0.60f, 0.00f),
                         new Vector3(0.50f, 0.60f, 0.00f),
                         new Vector3(0.50f, 0.20f, 0.00f)
                         , ""),

                new Quad(new Vector3(0.70f, 0.20f, 1.30f),
                         new Vector3(0.70f, 0.60f, 1.30f),
                         new Vector3(0.50f, 0.60f, 1.30f),
                         new Vector3(0.50f, 0.20f, 1.30f)
                         , ""),

                new Quad(new Vector3(0.09f, 0.80f, -3.30f),
                         new Vector3(0.00f, 0.80f, -3.30f),
                         new Vector3(0.00f, 0.80f, -2.70f),
                         new Vector3(0.09f, 0.80f, -2.70f)
                         , ""),

                new Quad(new Vector3(0.09f, 1.40f, -2.70f),
                         new Vector3(0.09f, 1.58f, -2.50f),
                         new Vector3(0.09f, 0.62f, -2.50f),
                         new Vector3(0.09f, 0.80f, -2.70f)
                         , ""),

                new Quad(new Vector3(0.09f, 0.80f, -3.30f),
                         new Vector3(0.09f, 0.62f, -3.50f),
                         new Vector3(0.09f, 1.58f, -3.50f),
                         new Vector3(0.09f, 1.40f, -3.30f)
                         , ""),

                new Quad(new Vector3(0.09f, 0.80f, -2.70f),
                         new Vector3(0.09f, 0.62f, -2.50f),
                         new Vector3(0.09f, 0.62f, -3.50f),
                         new Vector3(0.09f, 0.80f, -3.30f)
                         , ""),

                new Quad(new Vector3(0.09f, 1.40f, -3.30f),
                         new Vector3(0.09f, 1.58f, -3.50f),
                         new Vector3(0.09f, 1.58f, -2.50f),
                         new Vector3(0.09f, 1.40f, -2.70f)
                         , ""),

                new Quad(new Vector3(0.09f, 0.80f, -2.70f),
                         new Vector3(0.00f, 0.80f, -2.70f),
                         new Vector3(0.00f, 1.40f, -2.70f),
                         new Vector3(0.09f, 1.40f, -2.70f)
                         , ""),

                new Quad(new Vector3(0.09f, 1.40f, -2.70f),
                         new Vector3(0.00f, 1.40f, -2.70f),
                         new Vector3(0.00f, 1.40f, -3.30f),
                         new Vector3(0.09f, 1.40f, -3.30f)
                         , ""),

                new Quad(new Vector3(0.09f, 1.40f, -3.30f),
                         new Vector3(0.00f, 1.40f, -3.30f),
                         new Vector3(0.00f, 0.80f, -3.30f),
                         new Vector3(0.09f, 0.80f, -3.30f)
                         , ""),

                new Quad(new Vector3(-1.00f, 0.60f, -0.50f),
                         new Vector3(-1.00f, 0.60f, 1.50f),
                         new Vector3(-1.00f, 1.50f, 1.50f),
                         new Vector3(-1.00f, 1.50f, -0.50f)
                         , ""),

                new Quad(new Vector3(1.00f, 1.50f, 1.50f),
                         new Vector3(1.00f, 0.60f, 1.50f),
                         new Vector3(1.00f, 0.60f, -0.50f),
                         new Vector3(1.00f, 1.50f, -0.50f)
                         , ""),
                #endregion
            };

            List <Quad> glass = new List <Quad>
            {
                #region glass
                new Quad(new Vector3(-1.00f, 1.50f, 1.50f),
                         new Vector3(-1.00f, 2.60f, 0.50f),
                         new Vector3(-1.00f, 2.60f, -0.50f),
                         new Vector3(-1.00f, 1.50f, -0.50f)
                         , @"Texture\vidro", @"Texture\vidro_snow"),

                new Quad(new Vector3(1.00f, 2.60f, 0.50f),
                         new Vector3(-1.00f, 2.60f, 0.50f),
                         new Vector3(-1.00f, 1.50f, 1.50f),
                         new Vector3(1.00f, 1.50f, 1.50f)
                         , @"Texture\vidro", @"Texture\vidro_snow"),

                new Quad(new Vector3(1.00f, 2.60f, -0.50f),
                         new Vector3(1.00f, 2.60f, 0.50f),
                         new Vector3(1.00f, 1.50f, 1.50f),
                         new Vector3(1.00f, 1.50f, -0.50f)
                         , @"Texture\vidro", @"Texture\vidro_snow"),
                #endregion
            };

            List <Quad> heliMainBlade = new List <Quad>
            {
                #region main blade
                new Quad(new Vector3(0.06f, 0.10f, 0.06f),
                         new Vector3(0.06f, 0.10f, -0.06f),
                         new Vector3(0.06f, 0.20f, -0.06f),
                         new Vector3(0.06f, 0.20f, 0.06f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.06f, -0.00f, -0.06f),
                         new Vector3(-0.06f, 0.10f, -0.06f),
                         new Vector3(0.06f, 0.10f, -0.06f),
                         new Vector3(0.06f, -0.00f, -0.06f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.06f, -0.00f, 0.06f),
                         new Vector3(-0.06f, 0.10f, 0.06f),
                         new Vector3(-0.06f, 0.10f, -0.06f),
                         new Vector3(-0.06f, -0.00f, -0.06f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(0.06f, -0.00f, 0.06f),
                         new Vector3(0.06f, 0.10f, 0.06f),
                         new Vector3(-0.06f, 0.10f, 0.06f),
                         new Vector3(-0.06f, -0.00f, 0.06f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(0.06f, -0.00f, -0.06f),
                         new Vector3(0.06f, 0.10f, -0.06f),
                         new Vector3(0.06f, 0.10f, 0.06f),
                         new Vector3(0.06f, -0.00f, 0.06f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.06f, 0.20f, 0.06f),
                         new Vector3(0.06f, 0.20f, 0.06f),
                         new Vector3(0.06f, 0.20f, -0.06f),
                         new Vector3(-0.06f, 0.20f, -0.06f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(0.06f, 0.10f, -0.06f),
                         new Vector3(-0.06f, 0.10f, -0.06f),
                         new Vector3(-0.06f, 0.20f, -0.06f),
                         new Vector3(0.06f, 0.20f, -0.06f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.06f, 0.10f, 0.06f),
                         new Vector3(0.06f, 0.10f, 0.06f),
                         new Vector3(0.06f, 0.20f, 0.06f),
                         new Vector3(-0.06f, 0.20f, 0.06f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.06f, 0.10f, -0.06f),
                         new Vector3(-0.06f, 0.10f, 0.06f),
                         new Vector3(-0.06f, 0.20f, 0.06f),
                         new Vector3(-0.06f, 0.20f, -0.06f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.06f, 0.10f, 0.06f),
                         new Vector3(-0.06f, 0.10f, -0.06f),
                         new Vector3(-3.00f, 0.10f, -0.15f),
                         new Vector3(-3.00f, 0.10f, 0.15f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.15f, 0.10f, -3.00f),
                         new Vector3(-0.06f, 0.10f, -0.06f),
                         new Vector3(0.06f, 0.10f, -0.06f),
                         new Vector3(0.15f, 0.10f, -3.00f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(0.06f, 0.10f, -0.06f),
                         new Vector3(0.06f, 0.10f, 0.06f),
                         new Vector3(3.00f, 0.10f, 0.15f),
                         new Vector3(3.00f, 0.10f, -0.15f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(0.15f, 0.10f, 3.00f),
                         new Vector3(0.06f, 0.10f, 0.06f),
                         new Vector3(-0.06f, 0.10f, 0.06f),
                         new Vector3(-0.15f, 0.10f, 3.00f)
                         , @"Texture\blade", @"Texture\blade_snow"),
                #endregion
            };

            List <Quad> heliTailBlade = new List <Quad>()
            {
                #region tail blade
                new Quad(new Vector3(-0.03f, 0.02f, -0.02f),
                         new Vector3(-0.03f, 0.02f, 0.02f),
                         new Vector3(-0.03f, 0.20f, 0.04f),
                         new Vector3(-0.03f, 0.20f, -0.04f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.03f, -0.02f, -0.02f),
                         new Vector3(-0.03f, 0.02f, -0.02f),
                         new Vector3(-0.03f, 0.04f, -0.20f),
                         new Vector3(-0.03f, -0.04f, -0.20f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(0.00f, 0.02f, 0.02f),
                         new Vector3(0.00f, -0.02f, 0.02f),
                         new Vector3(0.00f, -0.02f, -0.02f),
                         new Vector3(0.00f, 0.02f, -0.02f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.03f, 0.02f, 0.02f),
                         new Vector3(-0.03f, 0.02f, -0.02f),
                         new Vector3(-0.06f, 0.02f, -0.02f),
                         new Vector3(-0.06f, 0.02f, 0.02f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(0.00f, -0.02f, -0.02f),
                         new Vector3(-0.03f, -0.02f, -0.02f),
                         new Vector3(-0.03f, 0.02f, -0.02f),
                         new Vector3(0.00f, 0.02f, -0.02f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(0.00f, -0.02f, 0.02f),
                         new Vector3(-0.03f, -0.02f, 0.02f),
                         new Vector3(-0.03f, -0.02f, -0.02f),
                         new Vector3(0.00f, -0.02f, -0.02f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(0.00f, 0.02f, 0.02f),
                         new Vector3(-0.03f, 0.02f, 0.02f),
                         new Vector3(-0.03f, -0.02f, 0.02f),
                         new Vector3(0.00f, -0.02f, 0.02f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(0.00f, 0.02f, -0.02f),
                         new Vector3(-0.03f, 0.02f, -0.02f),
                         new Vector3(-0.03f, 0.02f, 0.02f),
                         new Vector3(0.00f, 0.02f, 0.02f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.03f, -0.02f, 0.02f),
                         new Vector3(-0.03f, -0.02f, -0.02f),
                         new Vector3(-0.03f, -0.20f, -0.04f),
                         new Vector3(-0.03f, -0.20f, 0.04f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.03f, -0.02f, 0.02f),
                         new Vector3(-0.03f, 0.02f, 0.02f),
                         new Vector3(-0.03f, 0.04f, 0.20f),
                         new Vector3(-0.03f, -0.04f, 0.20f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.06f, -0.02f, 0.02f),
                         new Vector3(-0.06f, 0.02f, 0.02f),
                         new Vector3(-0.06f, 0.02f, -0.02f),
                         new Vector3(-0.06f, -0.02f, -0.02f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.03f, 0.02f, -0.02f),
                         new Vector3(-0.03f, -0.02f, -0.02f),
                         new Vector3(-0.06f, -0.02f, -0.02f),
                         new Vector3(-0.06f, 0.02f, -0.02f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.03f, -0.02f, 0.02f),
                         new Vector3(-0.03f, 0.02f, 0.02f),
                         new Vector3(-0.06f, 0.02f, 0.02f),
                         new Vector3(-0.06f, -0.02f, 0.02f)
                         , @"Texture\blade", @"Texture\blade_snow"),

                new Quad(new Vector3(-0.03f, -0.02f, -0.02f),
                         new Vector3(-0.03f, -0.02f, 0.02f),
                         new Vector3(-0.06f, -0.02f, 0.02f),
                         new Vector3(-0.06f, -0.02f, -0.02f)
                         , @"Texture\blade", @"Texture\blade_snow"),
                #endregion
            };
            chooper.AddQuads(heliBody);                         // adicionar a lista de poligonos
            chooper.AddQuads(glass);
            chooper.SetPosition(0, 1.5f, 0.5f);                 // setar posicao do helicoptero
            chooper.SetMainBlade(0, 4.1f, 0.5f, heliMainBlade); // adicionar helices e setar posicoes
            chooper.SetTailBlade(0, 2.6f, -2.5f, heliTailBlade);
            #endregion


            Obj casa = new Obj(@"Texture\Wall", @"Texture\wall_snow");
            #region set da casa
            List <Quad> parede = new List <Quad>
            {
                #region paredes
                new Quad(new Vector3(-1.50f, 1.00f, 2.75f),
                         new Vector3(-1.50f, 1.00f, 0.75f),
                         new Vector3(-1.50f, 0.00f, 0.75f),
                         new Vector3(-1.50f, 0.00f, 2.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(-1.50f, 3.00f, -3.75f),
                         new Vector3(-1.50f, 2.00f, -3.75f),
                         new Vector3(-1.50f, 2.00f, 3.75f),
                         new Vector3(-1.50f, 3.00f, 3.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(-1.50f, 2.00f, -1.10f),
                         new Vector3(-1.50f, 1.30f, -1.10f),
                         new Vector3(-1.50f, 1.30f, 0.75f),
                         new Vector3(-1.50f, 2.00f, 0.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(-1.50f, 0.00f, -3.75f),
                         new Vector3(-1.50f, 3.00f, -3.75f),
                         new Vector3(1.30f, 3.00f, -3.75f),
                         new Vector3(1.30f, 0.00f, -3.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(-1.50f, 1.30f, -1.80f),
                         new Vector3(-1.50f, 2.00f, -1.80f),
                         new Vector3(-1.50f, 2.00f, -3.75f),
                         new Vector3(-1.50f, 1.30f, -3.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(-1.50f, 2.00f, 3.75f),
                         new Vector3(-1.50f, 2.00f, 2.75f),
                         new Vector3(-1.50f, 0.00f, 2.75f),
                         new Vector3(-1.50f, 0.00f, 3.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(-1.50f, 1.30f, 0.75f),
                         new Vector3(-1.50f, 1.30f, -3.75f),
                         new Vector3(-1.50f, 0.00f, -3.75f),
                         new Vector3(-1.50f, 0.00f, 0.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(0.51f, 2.00f, 3.75f),
                         new Vector3(0.51f, 0.00f, 3.75f),
                         new Vector3(1.30f, 0.00f, 3.75f),
                         new Vector3(1.30f, 2.00f, 3.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(1.30f, 3.00f, 3.75f),
                         new Vector3(-1.50f, 3.00f, 3.75f),
                         new Vector3(-1.50f, 2.00f, 3.75f),
                         new Vector3(1.30f, 2.00f, 3.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(-1.50f, 0.00f, 3.75f),
                         new Vector3(-0.79f, 0.00f, 3.75f),
                         new Vector3(-0.79f, 1.99f, 3.75f),
                         new Vector3(-1.50f, 2.00f, 3.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(1.30f, 1.80f, 1.40f),
                         new Vector3(1.30f, 1.80f, -1.10f),
                         new Vector3(1.30f, 2.00f, -1.10f),
                         new Vector3(1.30f, 2.00f, 1.40f)
                         , @"Texture\wall"),

                new Quad(new Vector3(1.30f, 1.80f, 1.40f),
                         new Vector3(1.30f, 0.00f, 1.40f),
                         new Vector3(1.30f, 0.00f, -1.80f),
                         new Vector3(1.30f, 1.80f, -1.80f)
                         , @"Texture\wall"),

                new Quad(new Vector3(1.30f, 0.00f, 2.10f),
                         new Vector3(1.30f, 0.00f, 1.40f),
                         new Vector3(1.30f, 1.30f, 1.40f),
                         new Vector3(1.30f, 1.30f, 2.10f)
                         , @"Texture\wall"),

                new Quad(new Vector3(1.30f, 2.00f, -1.80f),
                         new Vector3(1.30f, 0.00f, -1.80f),
                         new Vector3(1.30f, 0.00f, -3.75f),
                         new Vector3(1.30f, 2.00f, -3.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(1.30f, 3.00f, 3.75f),
                         new Vector3(1.30f, 2.00f, 3.75f),
                         new Vector3(1.30f, 2.00f, -3.75f),
                         new Vector3(1.30f, 3.00f, -3.75f)
                         , @"Texture\wall"),

                new Quad(new Vector3(1.30f, 2.00f, 2.10f),
                         new Vector3(1.30f, 2.00f, 3.75f),
                         new Vector3(1.30f, 0.00f, 3.75f),
                         new Vector3(1.30f, 0.00f, 2.10f)
                         , @"Texture\wall"),


                #endregion
            };
            teto = new Obj(new List <Quad>
            {
                new Quad(new Vector3(1.30f, 3.00f, -3.75f),
                         new Vector3(-1.50f, 3.00f, -3.75f),
                         new Vector3(-1.50f, 3.00f, 3.75f),
                         new Vector3(1.30f, 3.00f, 3.75f)
                         , @"Texture\helo", @"Texture\helo_snow")
            });
            teto.SetPosition(0.005f, -1.5f, 0.02f);
            teto.boundinBox = new BoundingBox(new Vector3(-2.00f, 4.00f, -3.00f), new Vector3(2.00f, 4.00f, 3.00f));

            List <Quad> misc = new List <Quad>
            {
                #region misc
                new Quad(new Vector3(1.30f, 1.80f, -1.10f),
                         new Vector3(1.30f, 1.80f, -1.80f),
                         new Vector3(1.30f, 2.00f, -1.80f),
                         new Vector3(1.30f, 2.00f, -1.10f)
                         , @"Texture\wood", @"Texture\wood_snow"),

                new Quad(new Vector3(1.30f, 1.30f, 2.10f),
                         new Vector3(1.30f, 1.30f, 1.40f),
                         new Vector3(1.30f, 2.00f, 1.40f),
                         new Vector3(1.30f, 2.00f, 2.10f)
                         , @"Texture\wood", @"Texture\wood_snow"),

                new Quad(new Vector3(-1.50f, 2.00f, 1.75f),
                         new Vector3(-1.50f, 2.00f, 0.75f),
                         new Vector3(-1.50f, 1.00f, 0.75f),
                         new Vector3(-1.50f, 1.00f, 1.75f)
                         , @"Texture\wood", @"Texture\wood_snow"),

                new Quad(new Vector3(-1.50f, 2.00f, -1.80f),
                         new Vector3(-1.50f, 1.30f, -1.80f),
                         new Vector3(-1.50f, 1.30f, -1.10f),
                         new Vector3(-1.50f, 2.00f, -1.10f)
                         , @"Texture\wood", @"Texture\wood_snow"),

                new Quad(new Vector3(-1.50f, 1.00f, 1.75f),
                         new Vector3(-1.50f, 1.00f, 2.75f),
                         new Vector3(-1.50f, 2.00f, 2.75f),
                         new Vector3(-1.50f, 2.00f, 1.75f)
                         , @"Texture\wood", @"Texture\wood_snow"),

                new Quad(new Vector3(-0.79f, 1.99f, 3.75f),
                         new Vector3(-0.79f, -0.01f, 3.75f),
                         new Vector3(0.51f, -0.01f, 3.75f),
                         new Vector3(0.51f, 1.99f, 3.75f)
                         , @"Texture\wood", @"Texture\wood_snow"),
                #endregion
            };
            #endregion
            casa.AddQuads(misc);
            casa.AddQuads(parede);
            casa.SetPosition(0, -1.5f, 0);

            grid = new Grid("height map", "Ground_Snow", "Ground");

            Ocean ocean = new Ocean("ocean");
            ocean.SetPosition(0, 0, 0);

            //TODO: Create sets
            //TODO: Include objects on set
            List <Obj> sceneSet = new List <Obj>
            {
                chooper,
                teto,
                casa,
                grid,
                ocean
            };

            //TODO: Create scenes
            //TODO: Insert the set of objects on scene
            actualScene = new Scene(sceneSet, "Cena 1");

            //TODO: add the scences
            scenes = new List <Scene>();
            scenes.Add(actualScene);
        }