Ejemplo n.º 1
0
        public void BindScript(MISP.Engine scriptEngine)
        {
            scriptEngine.AddFunction("model", "Create a model component.", (context, arguments) =>
                {
                    var model = GeometryGeneration.MispBinding.ModelArgument(arguments[0]);
                    return new ModelComponent(GeometryGeneration.CompiledModel.CompileModel(model, device));
                }, MISP.Arguments.Arg("model"));

            var meshFunction = GeometryGeneration.MispBinding.GenerateBindingObject();
            scriptEngine.AddGlobalVariable("mesh", (context) => { return meshFunction; });

            scriptEngine.AddGlobalVariable("camera", (context) => { return Camera; });
        }
Ejemplo n.º 2
0
        public bool BindLibrary(MISP.Engine engine)
        {
            var database = new DatabaseService();

            engine.AddFunction("osm-query-id", "Query an entry from the OSM database.",
                (context, arguments) =>
                {
                    var r = database.Query(Convert.ToInt64(arguments[0]));
                    database.CommitChanges();
                    return r;
                }, Arguments.Arg("id"));

            engine.AddFunction("osm-query-name", "Query an entry from the OSM database.",
                (context, arguments) =>
                {
                    var r = database.Query(Convert.ToString(arguments[0]));
                    database.CommitChanges();
                    return r;
                }, Arguments.Arg("name"));

            var geoMath = AutoBind.GenerateLazyBindingObjectForStaticLibrary(typeof(GeographicMath));
            engine.AddGlobalVariable("geo", c => geoMath);

            return true;
        }
Ejemplo n.º 3
0
 void IModule.BindScript(MISP.Engine scriptEngine)
 {
     //scriptEngine.AddGlobalVariable("ui-root", c => uiRoot);
     var guiBinding = Gem.Gui.MispBinding.GenerateBinding();
     scriptEngine.AddGlobalVariable("ui", c => guiBinding);
     scriptEngine.AddFunction("create-ui-scene-node", "",
         (context, arguments) =>
         {
             var r = new GuiSceneNode(MISP.AutoBind.IntArgument(arguments[0]),
                 MISP.AutoBind.IntArgument(arguments[1]), this);
             activeGuis.Add(r);
             return r;
         },
             MISP.Arguments.Arg("width"), MISP.Arguments.Arg("height"));
 }
Ejemplo n.º 4
0
        void IModule.BindScript(MISP.Engine scriptEngine)
        {
            var renderer = new MISP.GenericScriptObject();

            renderer.AddFunction("create-scene-leaf", "Create a scene leaf.", (context, arguments) =>
                {
                    var model = GeometryGeneration.MispBinding.ModelArgument(arguments[0]);
                    return new SceneNode
                        {
                            leaf = GeometryGeneration.CompiledModel.CompileModel(model, device)
                        };
                }, MISP.Arguments.Arg("model"));

            renderer.AddFunction("create-scene-component", "Create a scene component.",
                (context, arguments) =>
            {
                var r = new SceneGraphRoot();
                foreach (var arg in arguments)
                    if (arg is SceneNode)
                        r.rootNode.Add(arg as SceneNode);
                return r;
            }, MISP.Arguments.Arg("leaf"));

            renderer.AddFunction("query", "Query for a specific renderable.",
                (context, arguments) =>
                {
                    var key = MISP.AutoBind.UIntArgument(arguments[0]);
                    if (this.renderables.ContainsKey(key)) return this.renderables[key];
                    return null;
                }, MISP.Arguments.Arg("key"));

            scriptEngine.AddGlobalVariable("renderer", context => renderer);
            var meshFunction = GeometryGeneration.MispBinding.GenerateBindingObject();
            scriptEngine.AddGlobalVariable("mesh", (context) => { return meshFunction; });

            scriptEngine.AddGlobalVariable("camera", (context) => { return Camera; });
        }