Beispiel #1
0
        public Instance lookupInstance(string name)
        {
            if (name == null)
            {
                return(null);
            }
            RenderObjectHandle handle = renderObjects.ContainsKey(name) ? renderObjects[name] : null;

            return((handle == null) ? null : handle.getInstance());
        }
Beispiel #2
0
        public CameraBase lookupCamera(string name)
        {
            if (name == null)
            {
                return(null);
            }
            RenderObjectHandle handle = renderObjects.ContainsKey(name) ? renderObjects[name] : null;

            return((handle == null) ? null : handle.getCamera());
        }
Beispiel #3
0
        public Modifier lookupModifier(string name)
        {
            if (name == null)
            {
                return(null);
            }
            RenderObjectHandle handle = renderObjects.ContainsKey(name) ? renderObjects[name] : null;

            return((handle == null) ? null : handle.getModifier());
        }
Beispiel #4
0
        public LightSource lookupLight(string name)
        {
            if (name == null)
            {
                return(null);
            }
            RenderObjectHandle handle = renderObjects.ContainsKey(name) ? renderObjects[name] : null;

            return((handle == null) ? null : handle.getLight());
        }
Beispiel #5
0
        public Geometry lookupGeometry(string name)
        {
            if (name == null)
            {
                return(null);
            }
            RenderObjectHandle handle = renderObjects.ContainsKey(name) ? renderObjects[name] : null;

            return((handle == null) ? null : handle.getGeometry());
        }
Beispiel #6
0
        public Options lookupOptions(string name)
        {
            if (name == null)
            {
                return(null);
            }
            RenderObjectHandle handle = renderObjects.ContainsKey(name) ? renderObjects[name] : null;

            return((handle == null) ? null : handle.getOptions());
        }
Beispiel #7
0
        public bool update(string name, ParameterList pl, SunflowAPI api)
        {
            RenderObjectHandle obj = renderObjects[name];
            bool success;

            if (obj == null)
            {
                UI.printError(UI.Module.API, "Unable to update \"{0}\" - object was not defined yet", name);
                success = false;
            }
            else
            {
                UI.printDetailed(UI.Module.API, "Updating {0} object \"{1}\"", obj.typeName(), name);
                success = obj.update(pl, api);
                if (!success)
                {
                    UI.printError(UI.Module.API, "Unable to update \"{0}\" - removing", name);
                    remove(name);
                }
                else
                {
                    switch (obj.type)
                    {
                    case RenderObjectType.GEOMETRY:
                    case RenderObjectType.INSTANCE:
                        rebuildInstanceList = true;
                        break;

                    case RenderObjectType.LIGHT:
                        rebuildLightList = true;
                        break;

                    default:
                        break;
                    }
                }
            }
            return(success);
        }
Beispiel #8
0
 public void put(string name, Instance instance)
 {
     renderObjects[name] = new RenderObjectHandle(instance);
 }
Beispiel #9
0
 public void put(string name, LightSource light)
 {
     renderObjects[name] = new RenderObjectHandle(light);
 }
Beispiel #10
0
 public void put(string name, PrimitiveList primitives)
 {
     renderObjects[name] = new RenderObjectHandle(primitives);
 }
Beispiel #11
0
 public void put(string name, ITesselatable tesselatable)
 {
     renderObjects[name] = new RenderObjectHandle(tesselatable);
 }
Beispiel #12
0
 public void put(string name, IShader shader)
 {
     renderObjects[name] = new RenderObjectHandle(shader);
 }
Beispiel #13
0
 public void put(string name, Modifier modifier)
 {
     renderObjects[name] = new RenderObjectHandle(modifier);
 }
Beispiel #14
0
 public void put(string name, Modifier modifier)
 {
     renderObjects[name] = new RenderObjectHandle(modifier);
 }
Beispiel #15
0
 public void put(string name, Options options)
 {
     renderObjects[name] = new RenderObjectHandle(options);
 }
Beispiel #16
0
 public void put(string name, IShader shader)
 {
     renderObjects[name] = new RenderObjectHandle(shader);
 }
Beispiel #17
0
 public void put(string name, PrimitiveList primitives)
 {
     renderObjects[name] = new RenderObjectHandle(primitives);
 }
Beispiel #18
0
 public void put(string name, ITesselatable tesselatable)
 {
     renderObjects[name] = new RenderObjectHandle(tesselatable);
 }
Beispiel #19
0
 public void put(string name, Instance instance)
 {
     renderObjects[name] = new RenderObjectHandle(instance);
 }
Beispiel #20
0
 public void put(string name, LightSource light)
 {
     renderObjects[name] = new RenderObjectHandle(light);
 }
Beispiel #21
0
 public void put(string name, CameraBase camera)
 {
     renderObjects[name] = new RenderObjectHandle(camera);
 }
Beispiel #22
0
        public void remove(string name)
        {
            RenderObjectHandle obj = renderObjects[name];

            if (obj == null)
            {
                UI.printWarning(UI.Module.API, "Unable to remove \"%s\" - object was not defined yet");
                return;
            }
            UI.printDetailed(UI.Module.API, "Removing object \"%s\"", name);
            renderObjects.Remove(name);
            // scan through all objects to make sure we don't have any
            // references to the old object still around
            switch (obj.type)
            {
            case RenderObjectType.SHADER:
                IShader s = obj.getShader();
                foreach (KeyValuePair <string, RenderObjectHandle> e in renderObjects)
                {
                    Instance i = e.Value.getInstance();
                    if (i != null)
                    {
                        UI.printWarning(UI.Module.API, "Removing shader \"%s\" from instance \"%s\"", name, e.Key);
                        i.removeShader(s);
                    }
                }
                break;

            case RenderObjectType.MODIFIER:
                Modifier m = obj.getModifier();
                foreach (KeyValuePair <string, RenderObjectHandle> e in renderObjects)
                {
                    Instance i = e.Value.getInstance();
                    if (i != null)
                    {
                        UI.printWarning(UI.Module.API, "Removing modifier \"%s\" from instance \"%s\"", name, e.Key);
                        i.removeModifier(m);
                    }
                }
                break;

            case RenderObjectType.GEOMETRY:
            {
                Geometry g = obj.getGeometry();
                foreach (KeyValuePair <string, RenderObjectHandle> e in renderObjects)
                {
                    Instance i = e.Value.getInstance();
                    if (i != null && i.hasGeometry(g))
                    {
                        UI.printWarning(UI.Module.API, "Removing instance \"%s\" because it referenced geometry \"%s\"", e.Key, name);
                        remove(e.Key);
                    }
                }
                break;
            }

            case RenderObjectType.INSTANCE:
                rebuildInstanceList = true;
                break;

            case RenderObjectType.LIGHT:
                rebuildLightList = true;
                break;

            default:
                // no dependencies
                break;
            }
        }
Beispiel #23
0
 public void put(string name, Options options)
 {
     renderObjects[name] = new RenderObjectHandle(options);
 }
Beispiel #24
0
 public void put(string name, CameraBase camera)
 {
     renderObjects[name] = new RenderObjectHandle(camera);
 }