コード例 #1
0
        public void Add(Scene.SceneGraph graph)
        {
            AddMediaFromNode(graph.Root);

            var ge = new VirtualEntry();

            ge.Path = "VirtualFile";
            ge.Name = graph.Root.Name;

            var          ms = new MemoryStream(1024 * 1024);
            BinaryWriter w  = new BinaryWriter(ms);

            graph.WriteGraph(w);

            var wd = new byte[ms.Position];

            ms.Seek(0, SeekOrigin.Begin);
            ms.Read(wd, 0, wd.Length);
            Console.WriteLine("GraphSize:" + wd.Length + " bytes.");
            ge.RawData = wd;
            ge.Size    = wd.Length;
            ms.Flush();
            w.Flush();
            ms.Dispose();
            ge.Loaded     = true;
            ge.Compressed = false;
            Enteries.Add(ge);
        }
コード例 #2
0
        public Scene.SceneGraph GetGraph(string name)
        {
            Console.WriteLine("Searching for graph:" + name);
            foreach (var e in Enteries)
            {
                Console.WriteLine("E:" + e.Name + " Start:" + e.Start + " Size:" + e.Size + " P:" + e.Path);
                if (e.Name == name)
                {
                    Console.WriteLine("Found Graph:" + name);
                    var ng = new Scene.SceneGraph();
                    Load(e);
                    var          ms = new MemoryStream(e.RawData);
                    BinaryReader r  = new BinaryReader(ms);
                    //   Console.WriteLine("Reading Graph.");
                    ng.ReadGraph(r);
                    //  Console.WriteLine("Read.");
                    ms.Close();
                    r  = null;
                    ms = null;

                    LinkGraphImg(ng.Root);
                    return(ng);
                }
            }
            return(null);
        }
コード例 #3
0
        public override void Render()
        {
            Scene.SceneGraph g = VFX.VisualFX.Graph;

            int sw = Vivid.App.VividApp.W;
            int sh = Vivid.App.VividApp.H;

            float[] ox = new float[4];
            float[] oy = new float[4];

            ox[0] = (-W / 2); // * Graph.Z * Z;
            ox[1] = (W / 2);  // * Graph.Z * Z;
            ox[2] = (W / 2);  // * Graph.Z* Z ;
            ox[3] = (-W / 2); // *Graph.Z*Z;

            oy[0] = (-H / 2); // * Graph.Z*Z;
            oy[1] = (-H / 2); // *Graph.Z*Z;
            oy[2] = (H / 2);  // * Graph.Z * Z;
            oy[3] = (H / 2);  // * Graph.Z * Z;

            Vector2[] p = Maths.RotateOC(ox, oy, Rot, Z, 0, 0);

            p = Maths.Push(p, X - g.X, Y - g.Y);

            p = Maths.RotateOC(p, g.Rot, g.Z, 0, 0);

            p = Maths.Push(p, sw / 2, sh / 2);

            Draw.Render.SetBlend(Draw.BlendMode.SoftLight);

            Draw.Render.Col = new Vector4(1, 1, 1, Alpha);

            Draw.Render.Image(p, Img);

            /*
             * p = Maths.Rotate(p, Rot, 1.0f);
             *
             * p = Maths.Push(p, X, Y);
             *
             * Draw.Render.SetBlend(Draw.BlendMode.SoftLight);
             *
             * Draw.Render.Col = new Vector4(1, 1, 1, Alpha);
             *
             * Draw.Render.Image(p, Img);
             */
            //Console.WriteLine("X:" + X + " Y:" + Y + " Z:" + Z);
            //   Console.WriteLine("W" + W + " H:" + H);
        }