Пример #1
0
        /// <summary>
        /// ///
        /// </summary>
        public Tool()
        {
            InitializeComponent();

            IntPtr handle      = this.Handle;
            IntPtr PanelHandle = splitContainer1.Panel1.Handle;
            Int32  _Width      = splitContainer1.Panel1.Width;
            Int32  _Height     = splitContainer1.Panel1.Height;

            String    ViewerDLLName = @"Viewer.dll";
            IRealTime iRT           = (IRealTime)SearchForInterface(ViewerDLLName, "IRealTime");

            if (iRT != null)
            {
                iRT.Create(PanelHandle, _Width, _Height);
                this.MenuEnumVariables.DropDownItems.AddRange(iRT.GetMenuItems());
                this.LoadEnumVariables.DropDownItems.AddRange(iRT.GetLoadItems());
                splitContainer1.Panel1.MouseUp += iRT.GetMouseClick();


                m_Timer = new Timer(iRT);
                m_Timer.SetNumUD(this.FrameRate);
                m_Thread = new Thread(new ThreadStart(m_Timer.Run));
                m_Thread.Start();
                Closing += FermerFenetre;
            }
        }
Пример #2
0
        protected virtual void NewFrame(IRealTime realTime)
        {
            if (window.Input.Keyboard.KeyReleased(Keys.F))
            {
                SwapChainDescription sd;
                eye.Device.PrimarySwapChain.GetDescription(out sd);
                var dm = desctopDisplayMode;
                sd.ColorBufferFormatID = dm.FormatID;
                eye.Device.PrimarySwapChain.ResetToFullscreen(ref dm, ref sd);
            }
            else if (window.Input.Keyboard.KeyReleased(Keys.W))
            {
                SwapChainDescription sd;
                eye.Device.PrimarySwapChain.GetDescription(out sd);
                eye.Device.PrimarySwapChain.Reset(ref sd);
            }
            else if (window.Input.Keyboard.KeyReleased(Keys.P))
            {
                SwapChainDescription sd;
                eye.Device.PrimarySwapChain.GetDescription(out sd);
                eye.Device.PrimarySwapChain.ResetToPseudoFullscreen(ref sd);
            }

            for (int i = 0; i <= 6; i++)
                if (window.Input.Keyboard.KeyPressed(Keys.D0 + i))
                    currentScene = CreateAndInitializeScene(i);

            currentScene.NewFrame(realTime);
        }
Пример #3
0
        /// <summary>
        /// 取得即時路況(全台)
        /// </summary>
        /// <param name="radius">半徑範圍(公尺)</param>
        /// <param name="x">經度</param>
        /// <param name="y">緯度</param>
        /// <returns></returns>
        public List <RealTimeInfoDeserialize> GetRealTime(float y, float x, int radius)
        {
            //Initialize
            IRealTime repos = DataFactory.RealTimeRepository();

            //return radius range Info
            return(repos.getRealTimeInfo(y, x, radius));
        }
Пример #4
0
        public ActionResult GetRealTime(float y, float x, int radius)
        {
            //Initialize
            IRealTime repos = DataFactory.RealTimeRepository();

            //return radius range Info
            return(Content(JsonConvert.SerializeObject(repos.getRealTimeInfo(y, x, radius)), "application/json"));
        }
Пример #5
0
        public override void NewFrame(IRealTime realTime)
        {
            if (SwapChain.BeginScene())
            {
                ImmediateContext.ClearRenderTargetView(SwapChain.GetCurrentColorBuffer(), Color4.CornflowerBlue);

                SwapChain.EndScene();
                SwapChain.Present();
            }
        }
Пример #6
0
        public IHttpActionResult GetSearchWeather(float y, float x, int radius)
        {
            //Initial
            IHttpActionResult responseResult;
            IRealTime         repos = DataFactory.RealTimeRepository();
            //序列化撈出來的資料
            var jsonSerialize = JsonConvert.SerializeObject(repos.getRealTimeInfo(y, x, radius));
            //做成JSON字串包裝到最後輸出
            StringContent       responseMsgString = new StringContent(jsonSerialize, System.Text.Encoding.UTF8, "application/json");
            HttpResponseMessage responseMsg       = new HttpResponseMessage()
            {
                Content = responseMsgString
            };

            responseResult = ResponseMessage(responseMsg);

            return(responseResult);
        }
Пример #7
0
        // GET: RealTimeTrafficInfo
        public async Task <ActionResult> Index()
        {
            //Initialize
            IRealTime repos = DataFactory.RealTimeRepository();
            //Setting target Url
            string     targetURI = ConfigurationManager.AppSettings["RealTimeInfoURL"].ToString();
            HttpClient client    = new HttpClient();

            client.MaxResponseContentBufferSize = Int32.MaxValue;
            //Get Parking Json Format (not completed json)
            var response = await client.GetStringAsync(targetURI);

            JObject o          = (JObject)JsonConvert.DeserializeObject(response);
            string  parkString = o.SelectToken("result").ToString();
            //將JSON反序列化的資料填進資料庫中
            var collection = JsonConvert.DeserializeObject <IEnumerable <RealTimeInfoDeserialize> >(parkString);

            repos.addRealTimeInfo(collection);

            return(View());
        }
Пример #8
0
        public override void NewFrame(IRealTime realTime)
        {
            if (SwapChain.BeginScene())
            {
                ImmediateContext.ClearRenderTargetView(SwapChain.GetCurrentColorBuffer(), Color4.CornflowerBlue);
                ImmediateContext.OutputMerger.RenderTargets.Set(SwapChain.GetCurrentColorBuffer());
                ImmediateContext.Rasterizer.Viewports.Set(new Viewport(SwapChain.Width, SwapChain.Height));

                ImmediateContext.ShadersForDrawing = shaderCombination;

                ImmediateContext.InputAssembler.VertexLayout = vertexLayout;
                ImmediateContext.InputAssembler.VertexSources[0] = new VertexSource(vertexBuffer, 0, Vertex.SizeInBytes);
                ImmediateContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList;

                ImmediateContext.Draw(3, 0);

                SwapChain.EndScene();
                SwapChain.Present();
            }
        }
Пример #9
0
        public unsafe override void NewFrame(IRealTime realTime)
        {
            float angle = realTime.TotalRealTime * 0.125f;
            var cameraPosition = new Vector3(5, 3, 0);
            var world = Matrix4x4.CreateRotationX(angle) * Matrix4x4.CreateRotationY(2 * angle) * Matrix4x4.CreateRotationZ(3 * angle);
            var transform = new Transform
            {
                World = world,
                WorldInverseTranspose = Matrix4x4.Transpose(Matrix4x4.Invert(world))
            };
            var light = new Light
            {
                AmbientColor = new Color3(0.2f, 0.2f, 0.2f),
                LightPosition = new Vector3(10f, -7f, 2f),
                LightColor = Color3.White
            };

            if (SwapChain.BeginScene())
            {
                ImmediateContext.ShadersForDrawing = shaderCombination;

                ImmediateContext.InputAssembler.VertexLayout = vertexLayout;
                ImmediateContext.InputAssembler.VertexSources[0] = cubeMesh.Vertices;
                ImmediateContext.InputAssembler.IndexSource = cubeMesh.Indices;
                ImmediateContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList;

                ImmediateContext.SetSubresourceData(transformBuffer, 0, new SubresourceData((IntPtr)(&transform)));
                ImmediateContext.SetSubresourceData(lightBuffer, 0, new SubresourceData((IntPtr)(&light)));

                ImmediateContext.VertexStage.UniformBuffers[0] = transformBuffer;
                ImmediateContext.VertexStage.UniformBuffers[1] = cameraVertexBuffer;
                ImmediateContext.PixelStage.UniformBuffers[0] = lightBuffer;
                ImmediateContext.PixelStage.Samplers[0] = samplerState;

                ImmediateContext.OutputMerger.DepthStencilState = depthStencilState;

                var meshSubset = cubeMesh.Subsets[0];

                // Render Target
                ImmediateContext.OutputMerger.RenderTargets.Set(targetRtv);
                ImmediateContext.OutputMerger.DepthStencil = targetDsv;
                ImmediateContext.Rasterizer.Viewports.Set(new Viewport(TargetSize, TargetSize));

                ImmediateContext.ClearRenderTargetView(targetRtv, Color4.CornflowerBlue);
                ImmediateContext.ClearDepthStencilView(targetDsv, ClearDepthStencilFlags.All, 1.0f, 0);

                var cameraVertex = new CameraVertex
                {
                    ViewProjection =
                    Matrix4x4.CreateLookAtRH(cameraPosition, Vector3.Zero, Vector3.UnitZ) *
                    Matrix4x4.CreatePerspectiveFieldOfView(MathHelper.PiOver4, 1.0f, 0.1f, 1000.0f)
                };
                ImmediateContext.SetSubresourceData(cameraVertexBuffer, 0, new SubresourceData((IntPtr)(&cameraVertex)));

                ImmediateContext.PixelStage.ShaderResources[0] = diffuseView;

                ImmediateContext.DrawIndexed(meshSubset.IndexCount, meshSubset.StartIndexLocation, meshSubset.BaseVertexLocation);
                ImmediateContext.GenerateMips(targetSrv);

                // Swap Chain
                ImmediateContext.OutputMerger.RenderTargets.Set(SwapChain.GetCurrentColorBuffer());
                ImmediateContext.OutputMerger.DepthStencil = SwapChain.GetCurrentDepthStencilBuffer();
                ImmediateContext.Rasterizer.Viewports.Set(new Viewport(SwapChain.Width, SwapChain.Height));

                ImmediateContext.ClearRenderTargetView(SwapChain.GetCurrentColorBuffer(), Color4.Blue);
                ImmediateContext.ClearDepthStencilView(SwapChain.GetCurrentDepthStencilBuffer(), ClearDepthStencilFlags.All, 1.0f, 0);

                cameraVertex = new CameraVertex
                {
                    ViewProjection =
                    Matrix4x4.CreateLookAtRH(cameraPosition, Vector3.Zero, Vector3.UnitZ) *
                    Matrix4x4.CreatePerspectiveFieldOfView(MathHelper.PiOver4, SwapChain.GetAspectRatio(), 0.1f, 1000.0f)
                };
                ImmediateContext.SetSubresourceData(cameraVertexBuffer, 0, new SubresourceData((IntPtr)(&cameraVertex)));

                ImmediateContext.PixelStage.ShaderResources[0] = targetSrv;

                ImmediateContext.DrawIndexed(meshSubset.IndexCount, meshSubset.StartIndexLocation, meshSubset.BaseVertexLocation);

                SwapChain.EndScene();
                SwapChain.Present();
            }
        }
Пример #10
0
        public unsafe void Draw(IDeviceContext context, IRealTime realTime)
        {
            context.ShadersForDrawing = shaders;

            float totalRealTime = realTime.TotalRealTime;
            context.SetSubresourceData(timeUbuffer, 0, new SubresourceData(new IntPtr(&totalRealTime)));
            context.VertexStage.UniformBuffers[0] = timeUbuffer;

            context.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList;
            context.InputAssembler.VertexLayout = vertexLayout;
            context.InputAssembler.VertexSources[0] = new VertexSource(vertexBuffer, 0, Vertex.SizeInBytes);
            context.InputAssembler.IndexSource = new IndexSource(indexBuffer, 0, IndexFormat.SixteenBit);

            context.Rasterizer.State = rasterizerState;
            context.OutputMerger.DepthStencilState = depthStencilState;
            context.OutputMerger.BlendState = blendState;

            context.DrawIndexed(starCount * 6, 0, 0);
        }
Пример #11
0
        public unsafe override void NewFrame(IRealTime realTime)
        {
            if (SwapChain.BeginScene())
            {
                var time = new Time { CurrentTime = realTime.TotalRealTime * ParticleSpeed };
                var camera = new Camera { AspectRatio = SwapChain.GetAspectRatio() };
                ImmediateContext.SetSubresourceData(timeBuffer, 0, new SubresourceData(new IntPtr(&time)));
                ImmediateContext.SetSubresourceData(cameraBuffer, 0, new SubresourceData(new IntPtr(&camera)));

                ImmediateContext.OutputMerger.RenderTargets.Set(SwapChain.GetCurrentColorBuffer());
                ImmediateContext.Rasterizer.Viewports.Set(new Viewport(SwapChain.Width, SwapChain.Height));
                ImmediateContext.ClearRenderTargetView(SwapChain.GetCurrentColorBuffer(), Color4.Black);

                ImmediateContext.OutputMerger.BlendState = blendState;

                ImmediateContext.ShadersForDrawing = shaderCombination;
                ImmediateContext.InputAssembler.VertexLayout = vertexLayout;
                ImmediateContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.PointList;
                ImmediateContext.InputAssembler.VertexSources[0] = new VertexSource(vertexBuffer, 0, Vertex.SizeInBytes);
                ImmediateContext.VertexStage.UniformBuffers[0] = timeBuffer;
                ImmediateContext.GeometryStage.UniformBuffers[0] = cameraBuffer;

                ImmediateContext.Draw(ParticleCount, 0);

                SwapChain.EndScene();
                SwapChain.Present();
            }
        }
Пример #12
0
 public abstract void NewFrame(IRealTime realTime);
Пример #13
0
        public unsafe override void NewFrame(IRealTime realTime)
        {
            if (SwapChain.BeginScene())
            {
                ImmediateContext.OutputMerger.RenderTargets.Set(SwapChain.GetCurrentColorBuffer());
                ImmediateContext.Rasterizer.Viewports.Set(new Viewport(SwapChain.Width, SwapChain.Height));
                ImmediateContext.ClearRenderTargetView(SwapChain.GetCurrentColorBuffer(), Color4.Violet);

                ImmediateContext.ShadersForDrawing = shaderCombination;
                ImmediateContext.InputAssembler.VertexLayout = vertexLayout;
                ImmediateContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.PatchList4;
                ImmediateContext.InputAssembler.VertexSources[0] = new VertexSource(vertexBuffer, 0, Vertex.SizeInBytes);
                ImmediateContext.HullStage.UniformBuffers[0] = tessFactorBuffer;
                var tessFactor = new TessFactor();

                tessFactor.NumSegments = 4;
                ImmediateContext.SetSubresourceData(tessFactorBuffer, 0, new SubresourceData(new IntPtr(&tessFactor)));
                ImmediateContext.Draw(4, 0);

                tessFactor.NumSegments = 64;
                ImmediateContext.SetSubresourceData(tessFactorBuffer, 0, new SubresourceData(new IntPtr(&tessFactor)));
                ImmediateContext.Draw(4, 4);

                var amount = Math.Sin(realTime.TotalRealTime - Math.PI) * 0.5 + 0.5;
                tessFactor.NumSegments = (int)(32.0 * amount * amount) + 1;
                ImmediateContext.SetSubresourceData(tessFactorBuffer, 0, new SubresourceData(new IntPtr(&tessFactor)));
                ImmediateContext.Draw(4, 8);

                SwapChain.EndScene();
                SwapChain.Present();
            }
        }
Пример #14
0
        public void OnNewFrame(IRealTime realTime)
        {
            var swapChain = eye.Device.PrimarySwapChain;
            if (swapChain.BeginScene())
            {
                var context = eye.Device.ImmediateContext;
                context.ClearRenderTargetView(swapChain.GetCurrentColorBuffer(), Color4.Black);

                context.Rasterizer.Viewports.Set(new Viewport(swapChain.Width, swapChain.Height));
                context.OutputMerger.RenderTargets.Set(swapChain.GetCurrentColorBuffer());

                stars.Draw(context, realTime);

                swapChain.EndScene();
                swapChain.Present();
            }
        }
Пример #15
0
 public Timer(IRealTime _ToUpdate)
 {
     m_pApp = _ToUpdate;
 }