Added observer:orbit method for celx scripting.

ver1_6_1
Chris Laurel 2009-12-06 22:22:26 +00:00
parent 447e1eebe5
commit 3dd27d6cac
1 changed files with 18 additions and 0 deletions

View File

@ -136,6 +136,23 @@ static int observer_rotate(lua_State* l)
return 0;
}
static int observer_orbit(lua_State* l)
{
CelxLua celx(l);
celx.checkArgs(2, 2, "One argument required for orbit");
Observer* o = this_observer(l);
Quatd* q = celx.toRotation(2);
if (q == NULL)
{
celx.doError("Argument for observer:orbit must be a rotation");
}
Quatf qf((float) q->w, (float) q->x, (float) q->y, (float) q->z);
o->orbit(Selection(), qf);
return 0;
}
static int observer_lookat(lua_State* l)
{
CelxLua celx(l);
@ -893,6 +910,7 @@ void CreateObserverMetaTable(lua_State* l)
celx.registerMethod("getfov", observer_getfov);
celx.registerMethod("setfov", observer_setfov);
celx.registerMethod("rotate", observer_rotate);
celx.registerMethod("orbit", observer_orbit);
celx.registerMethod("center", observer_center);
celx.registerMethod("centerorbit", observer_centerorbit);
celx.registerMethod("follow", observer_follow);