made libdata iterator types use existing function from BPY_interface - ID_asPyObject(*id)
This commit is contained in:
@@ -59,12 +59,31 @@
|
|||||||
#include "api2_2x/Blender.h"
|
#include "api2_2x/Blender.h"
|
||||||
#include "api2_2x/Camera.h"
|
#include "api2_2x/Camera.h"
|
||||||
#include "api2_2x/Draw.h"
|
#include "api2_2x/Draw.h"
|
||||||
#include "api2_2x/Lamp.h"
|
|
||||||
#include "api2_2x/NMesh.h"
|
|
||||||
#include "api2_2x/Object.h"
|
|
||||||
#include "api2_2x/Registry.h"
|
#include "api2_2x/Registry.h"
|
||||||
#include "api2_2x/Scene.h"
|
|
||||||
|
/* ID_asPyObject */
|
||||||
|
#include "api2_2x/Object.h"
|
||||||
|
#include "api2_2x/Camera.h"
|
||||||
|
#include "api2_2x/Armature.h"
|
||||||
|
#include "api2_2x/Lamp.h"
|
||||||
|
/*#include "api2_2x/ CurNurb.h" do we need this ? */
|
||||||
|
#include "api2_2x/Curve.h"
|
||||||
|
#include "api2_2x/NMesh.h"
|
||||||
|
#include "api2_2x/Mesh.h"
|
||||||
|
#include "api2_2x/Lattice.h"
|
||||||
|
#include "api2_2x/Metaball.h"
|
||||||
|
#include "api2_2x/Text3d.h"
|
||||||
|
#include "api2_2x/Font.h"
|
||||||
|
#include "api2_2x/Group.h"
|
||||||
#include "api2_2x/World.h"
|
#include "api2_2x/World.h"
|
||||||
|
#include "api2_2x/Texture.h"
|
||||||
|
#include "api2_2x/Ipo.h"
|
||||||
|
#include "api2_2x/Text.h"
|
||||||
|
#include "api2_2x/Sound.h"
|
||||||
|
#include "api2_2x/NLA.h"
|
||||||
|
#include "api2_2x/Main.h"
|
||||||
|
#include "api2_2x/Scene.h"
|
||||||
|
|
||||||
|
|
||||||
/* bpy_registryDict is declared in api2_2x/Registry.h and defined
|
/* bpy_registryDict is declared in api2_2x/Registry.h and defined
|
||||||
* in api2_2x/Registry.c
|
* in api2_2x/Registry.c
|
||||||
@@ -1334,25 +1353,68 @@ static ScriptLink *ID_getScriptlink( ID * id )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *ID_asPyObject( ID * id )
|
PyObject *ID_asPyObject( ID * id )
|
||||||
{
|
{
|
||||||
switch ( MAKE_ID2( id->name[0], id->name[1] ) ) {
|
switch ( MAKE_ID2( id->name[0], id->name[1] ) ) {
|
||||||
case ID_OB:
|
|
||||||
return Object_CreatePyObject( ( Object * ) id );
|
|
||||||
case ID_LA:
|
|
||||||
return Lamp_CreatePyObject( ( Lamp * ) id );
|
|
||||||
case ID_CA:
|
|
||||||
return Camera_CreatePyObject( ( Camera * ) id );
|
|
||||||
case ID_MA:
|
|
||||||
return Material_CreatePyObject( ( Material * ) id );
|
|
||||||
case ID_WO:
|
|
||||||
return World_CreatePyObject( ( World * ) id );
|
|
||||||
case ID_SCE:
|
case ID_SCE:
|
||||||
return Scene_CreatePyObject( ( Scene * ) id );
|
return Scene_CreatePyObject( ( Scene *) id );
|
||||||
default:
|
break;
|
||||||
Py_INCREF( Py_None );
|
case ID_OB:
|
||||||
return Py_None;
|
return Object_CreatePyObject( (Object *) id );
|
||||||
|
break;
|
||||||
|
case ID_ME:
|
||||||
|
return Mesh_CreatePyObject( (Mesh *)id, NULL );
|
||||||
|
break;
|
||||||
|
case ID_CU: /*todo, support curnurbs?*/
|
||||||
|
return Curve_CreatePyObject((Curve *)id);
|
||||||
|
break;
|
||||||
|
case ID_MB:
|
||||||
|
return Metaball_CreatePyObject((MetaBall *)id);
|
||||||
|
break;
|
||||||
|
case ID_MA:
|
||||||
|
return Material_CreatePyObject((Material *)id);
|
||||||
|
break;
|
||||||
|
case ID_TE:
|
||||||
|
return Texture_CreatePyObject((Tex *)id);
|
||||||
|
break;
|
||||||
|
case ID_IM:
|
||||||
|
return Image_CreatePyObject((Image *)id);
|
||||||
|
break;
|
||||||
|
case ID_LT:
|
||||||
|
return Lattice_CreatePyObject((Lattice *)id);
|
||||||
|
break;
|
||||||
|
case ID_LA:
|
||||||
|
return Lamp_CreatePyObject((Lamp *)id);
|
||||||
|
break;
|
||||||
|
case ID_CA:
|
||||||
|
return Camera_CreatePyObject((Camera *)id);
|
||||||
|
break;
|
||||||
|
case ID_IP:
|
||||||
|
return Ipo_CreatePyObject((Ipo *)id);
|
||||||
|
break;
|
||||||
|
case ID_WO:
|
||||||
|
return World_CreatePyObject((World *)id);
|
||||||
|
break;
|
||||||
|
case ID_VF:
|
||||||
|
return Font_CreatePyObject((VFont *)id);
|
||||||
|
break;
|
||||||
|
case ID_TXT:
|
||||||
|
return Text_CreatePyObject((Text *)id);
|
||||||
|
break;
|
||||||
|
case ID_SO:
|
||||||
|
return Sound_CreatePyObject((bSound *)id);
|
||||||
|
break;
|
||||||
|
case ID_GR:
|
||||||
|
return Group_CreatePyObject((Group *)id);
|
||||||
|
break;
|
||||||
|
case ID_AR:
|
||||||
|
return Armature_CreatePyObject((bArmature *)id);
|
||||||
|
break;
|
||||||
|
case ID_AC:
|
||||||
|
return Action_CreatePyObject((bAction *)id);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int BPY_has_onload_script( void )
|
int BPY_has_onload_script( void )
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
#include "BIF_drawtext.h" /* unlink_text */
|
#include "BIF_drawtext.h" /* unlink_text */
|
||||||
|
|
||||||
/* python types */
|
/* python types */
|
||||||
#include "../BPY_extern.h" /* clearing scriptlinks */
|
#include "../BPY_extern.h" /* clearing scriptlinks and ID_asPyObject */
|
||||||
|
|
||||||
#include "gen_utils.h"
|
#include "gen_utils.h"
|
||||||
|
|
||||||
@@ -101,69 +101,6 @@ static PyObject *MainSeq_CreatePyObject( Link *iter, int type )
|
|||||||
return (PyObject *)seq;
|
return (PyObject *)seq;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *Link_as_BPyData( Link *link, short type )
|
|
||||||
{
|
|
||||||
switch (type) {
|
|
||||||
case ID_SCE:
|
|
||||||
return Scene_CreatePyObject( ( Scene *) link );
|
|
||||||
break;
|
|
||||||
case ID_OB:
|
|
||||||
return Object_CreatePyObject( (Object *) link );
|
|
||||||
break;
|
|
||||||
case ID_ME:
|
|
||||||
return Mesh_CreatePyObject( (Mesh *)link, NULL );
|
|
||||||
break;
|
|
||||||
case ID_CU: /*todo, support curnurbs?*/
|
|
||||||
return Curve_CreatePyObject((Curve *)link);
|
|
||||||
break;
|
|
||||||
case ID_MB:
|
|
||||||
return Metaball_CreatePyObject((MetaBall *)link);
|
|
||||||
break;
|
|
||||||
case ID_MA:
|
|
||||||
return Material_CreatePyObject((Material *)link);
|
|
||||||
break;
|
|
||||||
case ID_TE:
|
|
||||||
return Texture_CreatePyObject((Tex *)link);
|
|
||||||
break;
|
|
||||||
case ID_IM:
|
|
||||||
return Image_CreatePyObject((Image *)link);
|
|
||||||
break;
|
|
||||||
case ID_LT:
|
|
||||||
return Lattice_CreatePyObject((Lattice *)link);
|
|
||||||
break;
|
|
||||||
case ID_LA:
|
|
||||||
return Lamp_CreatePyObject((Lamp *)link);
|
|
||||||
break;
|
|
||||||
case ID_CA:
|
|
||||||
return Camera_CreatePyObject((Camera *)link);
|
|
||||||
break;
|
|
||||||
case ID_IP:
|
|
||||||
return Ipo_CreatePyObject((Ipo *)link);
|
|
||||||
break;
|
|
||||||
case ID_WO:
|
|
||||||
return World_CreatePyObject((World *)link);
|
|
||||||
break;
|
|
||||||
case ID_VF:
|
|
||||||
return Font_CreatePyObject((VFont *)link);
|
|
||||||
break;
|
|
||||||
case ID_TXT:
|
|
||||||
return Text_CreatePyObject((Text *)link);
|
|
||||||
break;
|
|
||||||
case ID_SO:
|
|
||||||
return Sound_CreatePyObject((bSound *)link);
|
|
||||||
break;
|
|
||||||
case ID_GR:
|
|
||||||
return Group_CreatePyObject((Group *)link);
|
|
||||||
break;
|
|
||||||
case ID_AR:
|
|
||||||
return Armature_CreatePyObject((bArmature *)link);
|
|
||||||
break;
|
|
||||||
case ID_AC:
|
|
||||||
return Action_CreatePyObject((bAction *)link);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Py_RETURN_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int MainSeq_len( BPy_MainSeq * self )
|
static int MainSeq_len( BPy_MainSeq * self )
|
||||||
{
|
{
|
||||||
@@ -221,7 +158,7 @@ static PyObject * MainSeq_subscript(BPy_MainSeq * self, PyObject *key)
|
|||||||
(lib && use_lib && id->lib && (!strcmp( id->lib->name, lib))) /* only external lib */
|
(lib && use_lib && id->lib && (!strcmp( id->lib->name, lib))) /* only external lib */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return Link_as_BPyData((Link *)id, self->type);
|
return ID_asPyObject(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -280,7 +217,7 @@ static PyObject *MainSeq_nextIter( BPy_MainSeq * self )
|
|||||||
"iterator at end" );
|
"iterator at end" );
|
||||||
}
|
}
|
||||||
|
|
||||||
object = Link_as_BPyData(self->iter, self->type);
|
object = ID_asPyObject((ID *)self->iter);
|
||||||
|
|
||||||
link= self->iter->next;
|
link= self->iter->next;
|
||||||
self->iter= link;
|
self->iter= link;
|
||||||
|
|||||||
@@ -38,6 +38,9 @@
|
|||||||
/* The Main PyType Object defined in Main.c */
|
/* The Main PyType Object defined in Main.c */
|
||||||
extern PyTypeObject MainSeq_Type;
|
extern PyTypeObject MainSeq_Type;
|
||||||
|
|
||||||
|
/* BPY_interface.c */
|
||||||
|
extern PyObject *ID_asPyObject( ID * id );
|
||||||
|
|
||||||
#define BPy_MainSeq_Check(v) \
|
#define BPy_MainSeq_Check(v) \
|
||||||
((v)->ob_type == &MainSeq_Type)
|
((v)->ob_type == &MainSeq_Type)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user