Exppython:

- Update method scene.update():
    To accept an optional parameter for a "full" update (using set_scene_bg()).
- Updated the docs accordingly.
This commit is contained in:
Willian Padovani Germano 2003-08-06 19:25:06 +00:00
parent 2db07e8f27
commit 577616b358
3 changed files with 38 additions and 6 deletions

@ -116,7 +116,7 @@ static PyObject *Scene_endFrame(BPy_Scene *self, PyObject *args);
static PyObject *Scene_currentFrame(BPy_Scene *self, PyObject *args);
static PyObject *Scene_frameSettings (BPy_Scene *self, PyObject *args);
static PyObject *Scene_makeCurrent(BPy_Scene *self);
static PyObject *Scene_update(BPy_Scene *self);
static PyObject *Scene_update(BPy_Scene *self, PyObject *args);
static PyObject *Scene_link(BPy_Scene *self, PyObject *args);
static PyObject *Scene_unlink(BPy_Scene *self, PyObject *args);
static PyObject *Scene_getRenderdir(BPy_Scene *self);
@ -158,8 +158,10 @@ static PyMethodDef BPy_Scene_methods[] = {
"A tuple (start, end, current) is returned in any case."},
{"makeCurrent", (PyCFunction)Scene_makeCurrent, METH_NOARGS,
"() - Make self the current scene"},
{"update", (PyCFunction)Scene_update, METH_NOARGS,
"() - Update scene self"},
{"update", (PyCFunction)Scene_update, METH_VARARGS,
"(full = 0) - Update scene self.\n"
"full = 0: sort the base list of objects."
"full = 1: full update -- also regroups, does ipos, ikas, keys"},
{"link", (PyCFunction)Scene_link, METH_VARARGS,
"(obj) - Link Object obj to this scene"},
{"unlink", (PyCFunction)Scene_unlink, METH_VARARGS,
@ -524,11 +526,30 @@ static PyObject *Scene_makeCurrent (BPy_Scene *self)
return Py_None;
}
static PyObject *Scene_update (BPy_Scene *self)
static PyObject *Scene_update (BPy_Scene *self, PyObject *args)
{
Scene *scene = self->scene;
int full = 0;
if (scene) sort_baselist (scene);
if (!scene)
return EXPP_ReturnPyObjError (PyExc_RuntimeError,
"Blender Scene was deleted!");
if (!PyArg_ParseTuple (args, "|i", &full))
return EXPP_ReturnPyObjError (PyExc_TypeError,
"expected nothing or int (0 or 1) argument");
if (!full)
sort_baselist (scene);
else if (full == 1)
set_scene_bg (scene);
else
return EXPP_ReturnPyObjError (PyExc_ValueError,
"in method scene.update(full), full should be:\n"
"0: to only sort scene elements (old behavior); or\n"
"1: for a full update (regroups, does ipos, ikas, keys, etc.)");
Py_INCREF (Py_None);
return Py_None;

@ -52,7 +52,7 @@ The Blender Python API Reference
open-source language.
@author: The Blender Python Team
@requires: Blender 2.28 pre-release or newer.
@requires: Blender 2.28 (already updated for 2.28a) or newer.
@version: 0.1
@see: U{www.blender.org<http://www.blender.org>}
@see: U{projects.blender.org<http://projects.blender.org>}

@ -155,6 +155,17 @@ class Scene:
Make this Scene the currently active one in Blender.
"""
def update(full = 0):
"""
Update this Scene in Blender.
@type full: int
@param full: A bool to control the level of updating:
- 0: sort the base list of objects.
- 1: sort and also regroup, do ipos, ikas, keys, script links, etc.
@warn: When in doubt, try with I{full = 0} first, since it is faster.
The "full" update is a recent addition to this method.
"""
def link(object):
"""
Link an Object to this Scene.