Ejemplo n.º 1
0
        public GuiSceneNode(int width, int height, GuiModule module)
        {
            this.module = module;

            uiCamera = new OrthographicCamera(new Viewport(0,0, width, height));
            uiRoot = new UIItem(new Rectangle(0,0,width,height));
            uiRoot.defaults = module.defaultSettings;
            uiRoot.settings = new MISP.GenericScriptObject();

            uiCamera.focus = new Vector2(width / 2, height / 2);
        }
Ejemplo n.º 2
0
        public GuiSceneNode(Geo.Mesh Mesh, GraphicsDevice device, int width, int height, Euler Euler = null)
        {
            this.Device = device;
            this.Mesh = Mesh;

            this.Orientation = Euler;
            if (this.Orientation == null) this.Orientation = new Euler();

            uiCamera = new Render.OrthographicCamera(new Viewport(0, 0, width, height));
            uiRoot = new UIItem("ROOT", new QuadShape(0, 0, width, height), null);

            uiCamera.focus = new Vector2(width / 2, height / 2);

            renderTarget = new RenderTarget2D(device, uiCamera.Viewport.Width, uiCamera.Viewport.Height);
        }
Ejemplo n.º 3
0
        public override void CalculateLocalMouse(Ray MouseRay, Action<Gem.Render.ISceneNode, float> HoverCallback)
        {
            if (HoverItem != null) HoverItem.Hover = false;

            var inverseTransform = Matrix.Invert(Orientation.Transform);
            var localMouseSource = Vector3.Transform(MouseRay.Position, inverseTransform);
            var localMouseDirection = Vector3.Transform(MouseRay.Direction, inverseTransform.Rotation);
            var localMouse = new Ray(localMouseSource, localMouseDirection);

            var intersection = Mesh.RayIntersection(localMouse);
            if (intersection.Intersects)
            {
                LocalMouseX = (int)System.Math.Round(intersection.UV.X * (uiCamera.Viewport.Width / LayoutScaling.X));
                LocalMouseY = (int)System.Math.Round(intersection.UV.Y * (uiCamera.Viewport.Height / LayoutScaling.Y));
                HoverItem = uiRoot.FindHoverItem(LocalMouseX, LocalMouseY);
                if (HoverItem != null) HoverCallback(this, intersection.Distance + DistanceBias);
            }
        }
Ejemplo n.º 4
0
        public Renderable(GraphicsDevice device, GuiDriver module, int width, int height, Euler Euler = null)
        {
            this.module      = module;
            this.Orientation = Euler;
            if (this.Orientation == null)
            {
                this.Orientation = new Euler();
            }

            uiCamera        = new Render.Cameras.OrthographicCamera(new Viewport(0, 0, width, height));
            uiRoot          = new UIItem(new Rectangle(0, 0, width, height));
            uiRoot.settings = new PropertySet();

            uiCamera.focus = new Vector2(width / 2, height / 2);

            renderTarget = new RenderTarget2D(device, uiCamera.Viewport.Width, uiCamera.Viewport.Height);
            var rawGuiQuad = Geo.Gen.CreateQuad();

            rawGuiQuad      = Geo.Gen.FacetCopy(rawGuiQuad);
            quadModel       = Geo.CompiledModel.CompileModel(rawGuiQuad, device);
            uiRoot.defaults = module.defaultSettings;
        }
Ejemplo n.º 5
0
        public static MISP.GenericScriptObject GenerateBinding()
        {
            var gui = new MISP.GenericScriptObject();

            gui["create"] = MISP.Function.MakeSystemFunction("create", MISP.Arguments.Args(
                MISP.Arguments.Arg("type"), Arguments.Arg("rect"), Arguments.Arg("settings"), Arguments.Optional("hover")),
                "Create a ui element.",
                (context, arguments) =>
                {
                    var type = ScriptObject.AsString(arguments[0]);
                    var rect = arguments[1] as Rectangle?;
                    if (rect == null || !rect.HasValue) throw new InvalidOperationException("Second argument must be a rect.");
                    UIItem result = null;
                    if (type == "item") result = new UIItem(rect.Value);
                    else if (type == "slider") result = new VerticalSlider(rect.Value);
                    else throw new InvalidOperationException("Unknown element type.");
                    result.settings = arguments[2] as ScriptObject;
                    result.hoverSettings = arguments[3] as ScriptObject;
                    return result;
                });

            return gui;
        }
Ejemplo n.º 6
0
 public void DrawRoot(UIItem root, Render.Cameras.OrthographicCamera camera, RenderTarget2D target)
 {
     uiRenderer.Camera = camera;
     uiRenderer.BeginScene(target);
     root.Render(uiRenderer);
 }
Ejemplo n.º 7
0
 public void Destroy()
 {
     if (parent != null)
         parent.RemoveChild(this);
     parent = null;
 }
Ejemplo n.º 8
0
 public virtual void RemoveChild(UIItem child)
 {
     children.Remove(child);
 }
Ejemplo n.º 9
0
 public virtual void AddChild(UIItem child)
 {
     children.Add(child);
     child.defaults = defaults;
     child.parent   = this;
 }
Ejemplo n.º 10
0
        internal void StartSimulation(String episodeName, uint version)
        {
            //System.Threading.Thread.Sleep(10000);
            if (simulation != null) throw new InvalidProgramException();
            simulation = new Simulation(Main.Content, new MISP.GenericScriptObject(
                "episode-name", episodeName, "server", null));
            simulation.Content.FrontLoadTextures();
            Main.Write("Started client simulation with episode " + episodeName + "\n");
            Main.ScriptEngine.PrepareEnvironment(simulation.scriptEngine);
            Main.ScriptEngine.AddEnvironment("client", simulation.scriptEngine, simulation.scriptContext);
            //simulation.scriptEngine.AddGlobalVariable("ui", (context) => { return uiRoot; });
            //uiRoot.children.Clear();

            renderModule = new RenderModule(Main.GraphicsDevice, simulation.Content);
            simulation.modules.Add(renderModule);
            octTreeModule = new OctTreeModule(new BoundingBox(new Vector3(-100, -100, -100), new Vector3(100, 100, 100)), 5.0f);
            simulation.modules.Add(octTreeModule);
            simulation.modules.Add(clientModule);
            simulation.modules.Add(inputModule);
            simulation.modules.Add(guiModule);

            simulation.beginSimulation();

            mouseLabel = new UIItem(new Rectangle(0, 0, 128, 64));
            mouseLabel.settings = new MISP.GenericScriptObject("bg-color", new Vector3(1, 1, 1));
            //guiModule.uiRoot.AddChild(mouseLabel);
        }
Ejemplo n.º 11
0
 public void ButtonEvent(Object handler, UIItem button)
 {
     sim.EnqueueEvent("@raw-input-event", new MISP.ScriptList(handler, button));
 }
Ejemplo n.º 12
0
 public void DrawRoot(UIItem root, OrthographicCamera camera, RenderTarget2D target)
 {
     uiRenderer.Camera = camera;
     uiRenderer.BeginScene(target);
     root.Render(uiRenderer);
 }
Ejemplo n.º 13
0
 public virtual void AddChild(UIItem child)
 {
     children.Add(child);
     child.parent = this;
 }
Ejemplo n.º 14
0
 public static bool IsHover(UIItem item)
 {
     return item.Hover;
 }
Ejemplo n.º 15
0
 public virtual void RemoveChild(UIItem child)
 {
     children.Remove(child);
 }
Ejemplo n.º 16
0
 public TextFieldKeyboardHandler(UIItem Root)
 {
     this.Item = Root;
 }
Ejemplo n.º 17
-1
        public Renderable(GraphicsDevice device, GuiDriver module, int width, int height, Euler Euler = null)
        {
            this.module = module;
            this.Orientation = Euler;
            if (this.Orientation == null) this.Orientation = new Euler();

            uiCamera = new Render.Cameras.OrthographicCamera(new Viewport(0, 0, width, height));
            uiRoot = new UIItem(new Rectangle(0, 0, width, height));
            uiRoot.settings = new PropertySet();

            uiCamera.focus = new Vector2(width / 2, height / 2);

            renderTarget = new RenderTarget2D(device, uiCamera.Viewport.Width, uiCamera.Viewport.Height);
            var rawGuiQuad = Geo.Gen.CreateQuad();
            rawGuiQuad = Geo.Gen.FacetCopy(rawGuiQuad);
            quadModel = Geo.CompiledModel.CompileModel(rawGuiQuad, device);
            uiRoot.defaults = module.defaultSettings;
        }