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); }
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); }
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); } }
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; }
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; }
public void DrawRoot(UIItem root, Render.Cameras.OrthographicCamera camera, RenderTarget2D target) { uiRenderer.Camera = camera; uiRenderer.BeginScene(target); root.Render(uiRenderer); }
public void Destroy() { if (parent != null) parent.RemoveChild(this); parent = null; }
public virtual void RemoveChild(UIItem child) { children.Remove(child); }
public virtual void AddChild(UIItem child) { children.Add(child); child.defaults = defaults; child.parent = this; }
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); }
public void ButtonEvent(Object handler, UIItem button) { sim.EnqueueEvent("@raw-input-event", new MISP.ScriptList(handler, button)); }
public void DrawRoot(UIItem root, OrthographicCamera camera, RenderTarget2D target) { uiRenderer.Camera = camera; uiRenderer.BeginScene(target); root.Render(uiRenderer); }
public virtual void AddChild(UIItem child) { children.Add(child); child.parent = this; }
public static bool IsHover(UIItem item) { return item.Hover; }
public TextFieldKeyboardHandler(UIItem Root) { this.Item = Root; }
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; }