Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/bpython/intern/b_interface.h')
-rw-r--r--source/blender/bpython/intern/b_interface.h184
1 files changed, 184 insertions, 0 deletions
diff --git a/source/blender/bpython/intern/b_interface.h b/source/blender/bpython/intern/b_interface.h
new file mode 100644
index 00000000000..b2af2280f1f
--- /dev/null
+++ b/source/blender/bpython/intern/b_interface.h
@@ -0,0 +1,184 @@
+/**
+ * $Id$
+ *
+ * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License. See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ */
+#include "DNA_ID.h"
+#include "DNA_mesh_types.h"
+#include "DNA_view3d_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_object_types.h"
+#include "DNA_text_types.h"
+#include "DNA_curve_types.h"
+#include "DNA_screen_types.h"
+#include "DNA_camera_types.h"
+#include "DNA_ipo_types.h"
+#include "DNA_image_types.h"
+#include "DNA_lamp_types.h"
+#include "DNA_material_types.h"
+#include "DNA_scriptlink_types.h"
+#include "DNA_userdef_types.h" /* for userdata struct; U.pythondir */
+
+#include "BKE_main.h"
+#include "BKE_material.h"
+#include "BKE_mesh.h"
+#include "BKE_object.h"
+#include "BKE_scene.h"
+#include "BKE_global.h"
+
+/* DEFINES */
+
+#define ASSIGN_IPO(prefix, type) \
+ prefix##_assignIpo(type *obj, Ipo *ipo)
+
+// example DEF_ASSIGN_IPO(Object, obj) ->
+// int object_assignIpo(Object *obj, Ipo *ipo)
+
+#define DEF_ASSIGN_IPO(prefix, type) \
+ int prefix##_assignIpo(type *obj, Ipo *ipo) \
+ { \
+ BOB_XDECUSER((ID*) obj->ipo); \
+ BOB_XINCUSER((ID*) ipo); \
+ obj->ipo = ipo; \
+ return 1; \
+ } \
+
+// defined prototypes:
+
+#define FUNC_ASSIGN_IPO(prefix, arg1, arg2) \
+ prefix##_assignIpo(arg1, arg2)
+
+#define object_assignIpo(arg1, arg2) FUNC_ASSIGN_IPO(object, arg1, arg2)
+#define material_assignIpo(arg1, arg2) FUNC_ASSIGN_IPO(material, arg1, arg2)
+#define camera_assignIpo(arg1, arg2) FUNC_ASSIGN_IPO(camera, arg1, arg2)
+#define lamp_assignIpo(arg1, arg2) FUNC_ASSIGN_IPO(lamp, arg1, arg2)
+
+/** Defines for List getters */
+
+/*
+#define PROTO_GETLIST(name, member) \
+ ListBase *get##name##List(void)
+
+#define DEF_GETLIST(name, member) \
+ PROTO_GETLIST(name, member) \
+ { \
+ return &(G.main->member); \
+ }
+*/
+
+/* PROTOS */
+
+#define _GETMAINLIST(x) \
+ (&(G.main->x))
+
+#define getSceneList() _GETMAINLIST(scene)
+#define getObjectList() _GETMAINLIST(object)
+#define getMeshList() _GETMAINLIST(mesh)
+#define getMaterialList() _GETMAINLIST(mat)
+#define getCameraList() _GETMAINLIST(camera)
+#define getLampList() _GETMAINLIST(lamp)
+#define getWorldList() _GETMAINLIST(world)
+#define getIpoList() _GETMAINLIST(ipo)
+#define getImageList() _GETMAINLIST(image)
+#define getTextureList() _GETMAINLIST(tex)
+#define getTextList() _GETMAINLIST(text)
+#define getKeyList() _GETMAINLIST(key)
+#define getLatticeList() _GETMAINLIST(latt)
+
+/*
+PROTO_GETLIST(Scene, scene);
+PROTO_GETLIST(Object, object);
+PROTO_GETLIST(Mesh, mesh);
+PROTO_GETLIST(Camera, camera);
+PROTO_GETLIST(Material, mat);
+PROTO_GETLIST(Lamp, lamp);
+PROTO_GETLIST(World, world);
+PROTO_GETLIST(Ipo, ipo);
+PROTO_GETLIST(Image, image);
+PROTO_GETLIST(Texture, tex);
+PROTO_GETLIST(Text, text);
+PROTO_GETLIST(Key, key); */
+
+
+Global *getGlobal(void); // get Global struct
+
+ID *getFromList(ListBase *list, char *name);
+
+int garbage_collect(Main *m);
+
+
+Material **newMaterialList(int len);
+int releaseMaterialList(struct Material **matlist, int len);
+int synchronizeMaterialLists(Object *object, void *data);
+
+// Datablock management
+
+Material *material_new(void);
+int material_assignIpo(Material *, Ipo *);
+
+Lamp *lamp_new(void);
+int lamp_assignIpo(Lamp *, Ipo *);
+
+Camera *camera_new(void);
+int camera_assignIpo(Camera *, Ipo *);
+
+Ipo *ipo_new(int type, char *name);
+IpoCurve *ipo_findcurve(Ipo *ipo, int code);
+IpoCurve *ipocurve_new(void);
+IpoCurve *ipocurve_copy(IpoCurve *curve);
+
+// Object management
+Base *object_newBase(Object *obj);
+int object_linkdata(Object *obj, void *data);
+int object_unlinkdata(Object *obj);
+int object_setMaterials(Object *object, Material **matlist, int len);
+int object_setdefaults(Object *ob);
+int object_copyMaterialsTo(Object *object, Material **matlist, int len);
+int object_makeParent(Object *parent, Object *child, int noninverse, int fast);
+int object_clrParent(Object *child, int mode, int fast);
+Object *object_new(int type);
+Object *object_copy(Object *obj);
+void object_setDrawMode(Object *object, int val);
+int object_getDrawMode(Object *object);
+
+int object_assignIpo(Object *, Ipo *);
+
+Scene *scene_getCurrent(void);
+int scene_linkObject(Scene *scene, Object *obj);
+int scene_unlinkObject(Scene *scene, Object *object);
+Base *scene_getObjectBase(Scene *scene, Object *object);
+
+Mesh *mesh_new(void);
+void mesh_update(Mesh *me);
+
+/* blender's program name */
+extern char bprogname[]; /* init in creator.c */
+
+
+