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:
-rw-r--r--release/scripts/modules/bpy/__init__.py3
-rw-r--r--release/scripts/modules/bpy/app.py52
-rw-r--r--source/blender/python/CMakeLists.txt35
-rw-r--r--source/blender/python/doc/epy/Mathutils.py87
-rw-r--r--source/blender/python/doc/examples/mathutils.py17
-rw-r--r--source/blender/python/doc/examples/mathutils_euler.py3
-rw-r--r--source/blender/python/doc/examples/mathutils_matrix.py3
-rw-r--r--source/blender/python/doc/examples/mathutils_quat.py3
-rw-r--r--source/blender/python/doc/examples/mathutils_vector.py55
-rw-r--r--source/blender/python/doc/sphinx_doc_gen.py (renamed from source/blender/python/sphinx_doc_gen.py)60
-rw-r--r--source/blender/python/generic/BGL.c2
-rw-r--r--source/blender/python/generic/BGL.h1
-rw-r--r--source/blender/python/generic/CMakeLists.txt34
-rw-r--r--source/blender/python/generic/Mathutils.c5
-rw-r--r--source/blender/python/generic/euler.c5
-rw-r--r--source/blender/python/generic/matrix.c5
-rw-r--r--source/blender/python/generic/quat.c5
-rw-r--r--source/blender/python/generic/vector.c5
-rw-r--r--source/blender/python/intern/bpy_interface.c23
-rw-r--r--source/blender/python/intern/bpy_ui.c69
-rw-r--r--source/blender/python/intern/bpy_ui.h31
-rw-r--r--source/creator/CMakeLists.txt10
22 files changed, 203 insertions, 310 deletions
diff --git a/release/scripts/modules/bpy/__init__.py b/release/scripts/modules/bpy/__init__.py
index e4a2dfa5b05..e307b253780 100644
--- a/release/scripts/modules/bpy/__init__.py
+++ b/release/scripts/modules/bpy/__init__.py
@@ -20,14 +20,13 @@
# internal blender C module
import _bpy
-from _bpy import types, props
+from _bpy import types, props, app
data = _bpy.data
context = _bpy.context
# python modules
from bpy import utils
-from bpy import app
from bpy import ops as _ops_module
diff --git a/release/scripts/modules/bpy/app.py b/release/scripts/modules/bpy/app.py
deleted file mode 100644
index 26011ca5c2e..00000000000
--- a/release/scripts/modules/bpy/app.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# ##### BEGIN GPL 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.
-#
-# 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.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-# <pep8 compliant>
-
-"""
-This module contains application values that remain unchanged during runtime.
-
-.. data:: version
-
- The Blender version as a tuple of 3 numbers. eg. (2, 50, 11)
-
-
-.. data:: version_string
-
- The Blender version formatted as a string.
-
-.. data:: home
-
- The blender home directory, normally matching $HOME
-
-.. data:: binary_path
-
- The location of blenders executable, useful for utilities that spawn new instances.
-
-.. data:: debug
-
- Boolean, set when blender is running in debug mode (started with -d)
-
-"""
-# constants
-import _bpy
-version = _bpy._VERSION
-version_string = _bpy._VERSION_STR
-home = _bpy._HOME
-binary_path = _bpy._BINPATH
-debug = _bpy._DEBUG
diff --git a/source/blender/python/CMakeLists.txt b/source/blender/python/CMakeLists.txt
index a83e29e2fab..3a57db647e6 100644
--- a/source/blender/python/CMakeLists.txt
+++ b/source/blender/python/CMakeLists.txt
@@ -19,33 +19,30 @@
#
# The Original Code is: all of this file.
#
-# Contributor(s): Jacques Beaurain.
+# Contributor(s): Jacques Beaurainm, Campbell Barton
#
# ***** END GPL LICENSE BLOCK *****
+ADD_SUBDIRECTORY(generic)
+
FILE(GLOB SRC intern/*.c)
-FILE(GLOB GENSRC generic/*.c)
SET(INC
- . ../../../intern/guardedalloc ../blenlib ../makesdna ../makesrna
- ../blenkernel ../editors/include ../windowmanager ${PYTHON_INC}
- ../../../extern/glew/include
+ .
+ ../blenlib
+ ../makesdna
+ ../makesrna
+ ../blenkernel
+ ../windowmanager
+ ../editors/include
+ ../../../intern/guardedalloc
+ ${PYTHON_INC}
)
-IF(WITH_OPENEXR)
- ADD_DEFINITIONS(-DWITH_OPENEXR)
-ENDIF(WITH_OPENEXR)
-
-IF(WITH_QUICKTIME)
- SET(INC ${INC} ${QUICKTIME_INC})
- ADD_DEFINITIONS(-DWITH_QUICKTIME)
-ENDIF(WITH_QUICKTIME)
-
-IF(WITH_FFMPEG)
- SET(INC ${INC} ${FFMPEG_INC})
- ADD_DEFINITIONS(-DWITH_FFMPEG)
-ENDIF(WITH_FFMPEG)
+# only to check if buildinfo is available
+IF(WITH_BUILDINFO)
+ ADD_DEFINITIONS(-DBUILD_DATE)
+ENDIF(WITH_BUILDINFO)
BLENDERLIB(bf_python "${SRC}" "${INC}")
-BLENDERLIB(bf_gen_python "${GENSRC}" "${INC}")
diff --git a/source/blender/python/doc/epy/Mathutils.py b/source/blender/python/doc/epy/Mathutils.py
index eff3ab87dd3..b1bb039debe 100644
--- a/source/blender/python/doc/epy/Mathutils.py
+++ b/source/blender/python/doc/epy/Mathutils.py
@@ -1,60 +1,9 @@
# Blender.Mathutils module and its subtypes
-"""
-The Blender.Mathutils submodule.
-Mathutils
-=========
-(when accessing it from the Game Engine use Mathutils instead of Blender.Mathutils)
-
-This module provides access to matrices, eulers, quaternions and vectors.
-
-Example::
- import Blender
- from Blender import Mathutils
- from Blender.Mathutils import *
-
- vec = Vector([1,2,3])
- mat = RotationMatrix(90, 4, 'x')
- matT = TranslationMatrix(vec)
-
- matTotal = mat * matT
- matTotal.invert()
-
- mat3 = matTotal.rotationPart
- quat1 = mat.to_quat()
- quat2 = mat3.to_quat()
-
- angle = DifferenceQuats(quat1, quat2)
- print angle
-"""
class Vector:
"""
- The Vector object
- =================
- @note: Comparison operators can be done on Vector classes:
- - >, >=, <, <= test the vector magnitude
- - ==, != test vector values e.g. 1,2,3 != 1,2,4 even if they are the same length
- @note: Math can be performed on Vector classes
- - vec + vec
- - vec - vec
- - vec * float/int
- - vec * matrix
- - vec * vec
- - vec * quat
- - -vec
- @note: You can access a vector object like a sequence
- - x = vector[0]
- - vec_a[:] vec_b
- - vec2d[:] vec3d[:2]
- @note: Vectors support 'swizzle' operations
- - vec.xyz = vec.zyx
- - vec.xy = vec.zw
- - vec.xxy = vec.wzz
- - vec.yzyz = vec.yxyx
-
- See U{http://en.wikipedia.org/wiki/Swizzling_(computer_graphics)}
@attention: Vector data can be wrapped or non-wrapped. When a object is wrapped it
means that the object will give you direct access to the data inside of blender. Modification
@@ -62,15 +11,6 @@ class Vector:
you need to use the object's constructor. If you copy and object by assignment you will not get
a second copy but a second reference to the same data. Only certain functions will return
wrapped data. This will be indicated in the method description.
- Example::
- wrappedObject = Object.getAttribute() #this is wrapped data
- print wrappedObject.wrapped #prints 'True'
- copyOfObject = wrappedObject.copy() #creates a copy of the object
- secondPointer = wrappedObject #creates a second pointer to the same data
- print wrappedObject.attribute #prints '5'
- secondPointer.attribute = 10
- print wrappedObject.attribute #prints '10'
- print copyOfObject.attribute #prints '5'
"""
def __init__(list = None):
@@ -107,15 +47,6 @@ class Euler:
you need to use the object's constructor. If you copy and object by assignment you will not get
a second copy but a second reference to the same data. Only certain functions will return
wrapped data. This will be indicated in the method description.
- Example::
- wrappedObject = Object.getAttribute() #this is wrapped data
- print wrappedObject.wrapped #prints 'True'
- copyOfObject = wrappedObject.copy() #creates a copy of the object
- secondPointer = wrappedObject #creates a second pointer to the same data
- print wrappedObject.attribute #prints '5'
- secondPointer.attribute = 10
- print wrappedObject.attribute #prints '10'
- print copyOfObject.attribute #prints '5'
"""
def __init__(list = None):
@@ -154,15 +85,6 @@ class Quaternion:
you need to use the object's constructor. If you copy and object by assignment you will not get
a second copy but a second reference to the same data. Only certain functions will return
wrapped data. This will be indicated in the method description.
- Example::
- wrappedObject = Object.getAttribute() #this is wrapped data
- print wrappedObject.wrapped #prints 'True'
- copyOfObject = wrappedObject.copy() #creates a copy of the object
- secondPointer = wrappedObject #creates a second pointer to the same data
- print wrappedObject.attribute #prints '5'
- secondPointer.attribute = 10
- print wrappedObject.attribute #prints '10'
- print copyOfObject.attribute #prints '5'
"""
def __init__(list, angle = None):
@@ -208,15 +130,6 @@ class Matrix:
you need to use the object's constructor. If you copy and object by assignment you will not get
a second copy but a second reference to the same data. Only certain functions will return
wrapped data. This will be indicated in the method description.
- Example::
- wrappedObject = Object.getAttribute() #this is wrapped data
- print wrappedObject.wrapped #prints 'True'
- copyOfObject = wrappedObject.copy() #creates a copy of the object
- secondPointer = wrappedObject #creates a second pointer to the same data
- print wrappedObject.attribute #prints '5'
- secondPointer.attribute = 10
- print wrappedObject.attribute #prints '10'
- print copyOfObject.attribute #prints '5'
"""
def __init__(list1 = None, list2 = None, list3 = None, list4 = None):
diff --git a/source/blender/python/doc/examples/mathutils.py b/source/blender/python/doc/examples/mathutils.py
new file mode 100644
index 00000000000..a00ca3dd1c8
--- /dev/null
+++ b/source/blender/python/doc/examples/mathutils.py
@@ -0,0 +1,17 @@
+import Mathutils
+
+vec = Mathutils.Vector(1.0, 2.0, 3.0)
+
+mat_rot = Mathutils.RotationMatrix(90, 4, 'X')
+mat_trans = Mathutils.TranslationMatrix(vec)
+
+mat = mat_trans * mat_rot
+mat.invert()
+
+mat3 = mat.rotation_part()
+quat1 = mat.to_quat()
+quat2 = mat3.to_quat()
+
+angle = quat1.difference(quat2)
+
+print(angle) \ No newline at end of file
diff --git a/source/blender/python/doc/examples/mathutils_euler.py b/source/blender/python/doc/examples/mathutils_euler.py
new file mode 100644
index 00000000000..0e7a62162d9
--- /dev/null
+++ b/source/blender/python/doc/examples/mathutils_euler.py
@@ -0,0 +1,3 @@
+import Mathutils
+
+# todo \ No newline at end of file
diff --git a/source/blender/python/doc/examples/mathutils_matrix.py b/source/blender/python/doc/examples/mathutils_matrix.py
new file mode 100644
index 00000000000..0e7a62162d9
--- /dev/null
+++ b/source/blender/python/doc/examples/mathutils_matrix.py
@@ -0,0 +1,3 @@
+import Mathutils
+
+# todo \ No newline at end of file
diff --git a/source/blender/python/doc/examples/mathutils_quat.py b/source/blender/python/doc/examples/mathutils_quat.py
new file mode 100644
index 00000000000..0e7a62162d9
--- /dev/null
+++ b/source/blender/python/doc/examples/mathutils_quat.py
@@ -0,0 +1,3 @@
+import Mathutils
+
+# todo \ No newline at end of file
diff --git a/source/blender/python/doc/examples/mathutils_vector.py b/source/blender/python/doc/examples/mathutils_vector.py
new file mode 100644
index 00000000000..ef566a878e7
--- /dev/null
+++ b/source/blender/python/doc/examples/mathutils_vector.py
@@ -0,0 +1,55 @@
+import Mathutils
+
+# zero length vector
+vec = Mathutils.Vector(0, 0, 1)
+
+# unit length vector
+vec_a = vec.copy().normalize()
+
+vec_b = Mathutils.Vector(0, 1, 2)
+
+vec2d = Mathutils.Vector(1, 2)
+vec3d = Mathutils.Vector([1, 0, 0])
+vec4d = vec_a.copy().resize4D()
+
+# other mathutuls types
+quat = Mathutils.Quaternion()
+matrix = Mathutils.Matrix()
+
+# Comparison operators can be done on Vector classes:
+
+# greater and less then test vector length.
+vec_a > vec_b
+vec_a >= vec_b
+vec_a < vec_b
+vec_a <= vec_b
+
+# ==, != test vector values e.g. 1,2,3 != 3,2,1 even if they are the same length
+vec_a == vec_b
+vec_a != vec_b
+
+
+# Math can be performed on Vector classes
+vec_a + vec_b
+vec_a - vec_b
+vec_a * vec_b
+vec_a * 10.0
+vec_a * matrix
+vec_a * vec_b
+vec_a * quat
+-vec_a
+
+
+# You can access a vector object like a sequence
+x = vec_a[0]
+len(vec)
+vec_a[:] = vec_b
+vec2d[:] = vec3d[:2]
+
+
+# Vectors support 'swizzle' operations
+# See http://en.wikipedia.org/wiki/Swizzling_(computer_graphics)
+vec.xyz = vec.zyx
+vec.xy = vec.zw
+vec.xxy = vec.wzz
+vec.yzyz = vec.yxyx
diff --git a/source/blender/python/sphinx_doc_gen.py b/source/blender/python/doc/sphinx_doc_gen.py
index d7699d5d8f5..3b92ec28548 100644
--- a/source/blender/python/sphinx_doc_gen.py
+++ b/source/blender/python/doc/sphinx_doc_gen.py
@@ -21,7 +21,7 @@
script_help_msg = '''
Usage,
run this script from blenders root path once you have compiled blender
- ./blender.bin -b -P /b/source/blender/python/sphinx_doc_gen.py
+ ./blender.bin -b -P /b/source/blender/python/doc/sphinx_doc_gen.py
This will generate python files in "./source/blender/python/doc/sphinx-in"
Generate html docs by running...
@@ -51,11 +51,14 @@ def range_str(val):
else:
return str(val)
-def write_indented_lines(ident, fn, text):
+def write_indented_lines(ident, fn, text, strip=True):
if text is None:
return
for l in text.split("\n"):
- fn(ident + l.strip() + "\n")
+ if strip:
+ fn(ident + l.strip() + "\n")
+ else:
+ fn(ident + l + "\n")
def pymethod2sphinx(ident, fw, identifier, py_func):
@@ -109,8 +112,7 @@ def py_c_func2sphinx(ident, fw, identifier, py_func, is_class=True):
# dump the docstring, assume its formatted correctly
if py_func.__doc__:
- for l in py_func.__doc__.split("\n"):
- fw(ident + l + "\n")
+ write_indented_lines(ident, fw, py_func.__doc__, False)
fw("\n")
else:
fw(ident + ".. function:: %s()\n\n" % identifier)
@@ -133,6 +135,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title):
MethodDescriptorType = type(dict.get)
GetSetDescriptorType = type(int.real)
+
filepath = os.path.join(BASEPATH, module_name + ".rst")
@@ -150,6 +153,16 @@ def pymodule2sphinx(BASEPATH, module_name, module, title):
fw(module.__doc__.strip())
fw("\n\n")
+ # write members of the module
+ # only tested with PyStructs which are not exactly modules
+ for attribute, descr in sorted(type(module).__dict__.items()):
+ if type(descr) == types.MemberDescriptorType:
+ if descr.__doc__:
+ fw(".. data:: %s\n\n" % attribute)
+ write_indented_lines(" ", fw, descr.__doc__, False)
+ fw("\n")
+
+
classes = []
for attribute in dir(module):
@@ -173,8 +186,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title):
# May need to be its own function
fw(".. class:: %s\n\n" % attribute)
if value.__doc__:
- for l in value.__doc__.split("\n"):
- fw(" %s\n" % l)
+ write_indented_lines(" ", fw, value.__doc__, False)
fw("\n")
for key in sorted(value.__dict__.keys()):
@@ -184,8 +196,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title):
if type(descr) == GetSetDescriptorType:
if descr.__doc__:
fw(" .. attribute:: %s\n\n" % key)
- for l in descr.__doc__.split("\n"):
- fw(" %s\n" % l)
+ write_indented_lines(" ", fw, descr.__doc__, False)
fw("\n")
for key in sorted(value.__dict__.keys()):
@@ -194,8 +205,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title):
descr = value.__dict__[key]
if type(descr) == MethodDescriptorType: # GetSetDescriptorType, GetSetDescriptorType's are not documented yet
if descr.__doc__:
- for l in descr.__doc__.split("\n"):
- fw(" %s\n" % l)
+ write_indented_lines(" ", fw, descr.__doc__, False)
fw("\n")
fw("\n\n")
@@ -203,6 +213,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title):
file.close()
+
def rna2sphinx(BASEPATH):
structs, funcs, ops, props = rna_info.BuildRNAInfo()
@@ -217,11 +228,16 @@ def rna2sphinx(BASEPATH):
file = open(filepath, "w")
fw = file.write
+
+ version_string = bpy.app.version_string.split("(")[0]
+ if bpy.app.build_revision != "Unknown":
+ version_string = version_string + " r" + bpy.app.build_revision
+
fw("project = 'Blender 3D'\n")
# fw("master_doc = 'index'\n")
fw("copyright = u'Blender Foundation'\n")
- fw("version = '%s'\n" % bpy.app.version_string)
- fw("release = '%s'\n" % bpy.app.version_string)
+ fw("version = '%s'\n" % version_string)
+ fw("release = '%s'\n" % version_string)
fw("\n")
# needed for latex, pdf gen
fw("latex_documents = [ ('contents', 'contents.tex', 'Blender Index', 'Blender Foundation', 'manual'), ]\n")
@@ -237,7 +253,7 @@ def rna2sphinx(BASEPATH):
fw(" Blender Documentation contents\n")
fw("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n")
fw("\n")
- fw("This document is an API reference for Blender %s.\n" % bpy.app.version_string.split()[0])
+ fw("This document is an API reference for Blender %s. built %s.\n" % (version_string, bpy.app.build_date))
fw("\n")
fw("An introduction to blender and python can be found at <http://wiki.blender.org/index.php/Dev:2.5/Py/API/Intro>\n")
fw("\n")
@@ -285,6 +301,8 @@ def rna2sphinx(BASEPATH):
# python modules
from bpy import utils as module
pymodule2sphinx(BASEPATH, "bpy.utils", module, "Utilities (bpy.utils)")
+
+ # C modules
from bpy import app as module
pymodule2sphinx(BASEPATH, "bpy.app", module, "Application Data (bpy.app)")
@@ -473,10 +491,18 @@ if __name__ == '__main__':
print("\nError, this script must run from inside blender2.5")
print(script_help_msg)
else:
- # os.system("rm source/blender/python/doc/sphinx-in/*.rst")
- # os.system("rm -rf source/blender/python/doc/sphinx-out/*")
- rna2sphinx('source/blender/python/doc/sphinx-in')
+ import shutil
+
+ path_in = 'source/blender/python/doc/sphinx-in'
+ path_out = 'source/blender/python/doc/sphinx-in'
+
+ shutil.rmtree(path_in, True)
+ shutil.rmtree(path_out, True)
+ rna2sphinx(path_in)
+
+ # for fast module testing
# os.system("rm source/blender/python/doc/sphinx-in/bpy.types.*.rst")
+ # os.system("rm source/blender/python/doc/sphinx-in/bpy.ops.*.rst")
import sys
sys.exit()
diff --git a/source/blender/python/generic/BGL.c b/source/blender/python/generic/BGL.c
index 767af8e0836..a0eb050341f 100644
--- a/source/blender/python/generic/BGL.c
+++ b/source/blender/python/generic/BGL.c
@@ -33,7 +33,7 @@
* allowing script writers to make OpenGL calls in their Python scripts. */
#include "BGL.h" /*This must come first */
-
+#include <GL/glew.h>
#include "MEM_guardedalloc.h"
static int type_size( int type );
diff --git a/source/blender/python/generic/BGL.h b/source/blender/python/generic/BGL.h
index 91f88549faf..d83a48445c9 100644
--- a/source/blender/python/generic/BGL.h
+++ b/source/blender/python/generic/BGL.h
@@ -41,7 +41,6 @@
#endif
#include <Python.h>
-#include <GL/glew.h>
PyObject *BGL_Init(void);
diff --git a/source/blender/python/generic/CMakeLists.txt b/source/blender/python/generic/CMakeLists.txt
new file mode 100644
index 00000000000..da916ef33c7
--- /dev/null
+++ b/source/blender/python/generic/CMakeLists.txt
@@ -0,0 +1,34 @@
+# ***** BEGIN GPL 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.
+#
+# 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.
+#
+# Contributor(s): Campbell Barton
+#
+# ***** END GPL LICENSE BLOCK *****
+
+FILE(GLOB SRC *.c)
+
+SET(INC
+ .
+ ../../blenlib
+ ../../makesdna
+ ../../blenkernel
+ ../../editors/include
+ ../../../../intern/guardedalloc
+ ../../../../extern/glew/include
+ ${PYTHON_INC}
+)
+
+BLENDERLIB(bf_gen_python "${SRC}" "${INC}")
diff --git a/source/blender/python/generic/Mathutils.c b/source/blender/python/generic/Mathutils.c
index fa2c60813ed..cc8ced2d2db 100644
--- a/source/blender/python/generic/Mathutils.c
+++ b/source/blender/python/generic/Mathutils.c
@@ -54,7 +54,10 @@
#include "BKE_utildefines.h"
//-------------------------DOC STRINGS ---------------------------
-static char M_Mathutils_doc[] = "This module provides access to matrices, eulers, quaternions and vectors.";
+static char M_Mathutils_doc[] =
+"This module provides access to matrices, eulers, quaternions and vectors.\n"
+"\n"
+".. literalinclude:: ../examples/mathutils.py\n";
//-----------------------------METHODS----------------------------
//-----------------quat_rotation (internal)-----------
diff --git a/source/blender/python/generic/euler.c b/source/blender/python/generic/euler.c
index c41107286e0..2ba3d1d7675 100644
--- a/source/blender/python/generic/euler.c
+++ b/source/blender/python/generic/euler.c
@@ -591,7 +591,10 @@ static struct PyMethodDef Euler_methods[] = {
};
//------------------PY_OBECT DEFINITION--------------------------
-static char euler_doc[] = "This object gives access to Eulers in Blender.";
+static char euler_doc[] =
+"This object gives access to Eulers in Blender.\n"
+"\n"
+".. literalinclude:: ../examples/mathutils_euler.py\n";
PyTypeObject euler_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
diff --git a/source/blender/python/generic/matrix.c b/source/blender/python/generic/matrix.c
index af754e532a9..181004929ff 100644
--- a/source/blender/python/generic/matrix.c
+++ b/source/blender/python/generic/matrix.c
@@ -1280,7 +1280,10 @@ static struct PyMethodDef Matrix_methods[] = {
};
/*------------------PY_OBECT DEFINITION--------------------------*/
-static char matrix_doc[] = "This object gives access to Matrices in Blender.";
+static char matrix_doc[] =
+"This object gives access to Matrices in Blender.\n"
+"\n"
+".. literalinclude:: ../examples/mathutils_matrix.py\n";
PyTypeObject matrix_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
diff --git a/source/blender/python/generic/quat.c b/source/blender/python/generic/quat.c
index 33d35da5175..54172537e26 100644
--- a/source/blender/python/generic/quat.c
+++ b/source/blender/python/generic/quat.c
@@ -860,7 +860,10 @@ static PyGetSetDef Quaternion_getseters[] = {
};
//------------------PY_OBECT DEFINITION--------------------------
-static char quaternion_doc[] = "This object gives access to Quaternions in Blender.";
+static char quaternion_doc[] =
+"This object gives access to Quaternions in Blender.\n"
+"\n"
+".. literalinclude:: ../examples/mathutils_quat.py\n";
PyTypeObject quaternion_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
diff --git a/source/blender/python/generic/vector.c b/source/blender/python/generic/vector.c
index 4efd168eb87..a8452773012 100644
--- a/source/blender/python/generic/vector.c
+++ b/source/blender/python/generic/vector.c
@@ -2110,7 +2110,10 @@ static struct PyMethodDef Vector_methods[] = {
vec*mat and mat*vec both get sent to Vector_mul and it neesd to sort out the order
*/
-static char vector_doc[] = "This object gives access to Vectors in Blender.";
+static char vector_doc[] =
+"This object gives access to Vectors in Blender.\n"
+"\n"
+".. literalinclude:: ../examples/mathutils_vector.py\n";
PyTypeObject vector_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c
index e5204c0b8b5..7074f507aca 100644
--- a/source/blender/python/intern/bpy_interface.c
+++ b/source/blender/python/intern/bpy_interface.c
@@ -41,7 +41,6 @@
#include "bpy_rna.h"
#include "bpy_props.h"
#include "bpy_operator.h"
-#include "bpy_ui.h"
#include "bpy_util.h"
#ifndef WIN32
@@ -60,11 +59,9 @@
#include "BLI_fileops.h"
#include "BLI_string.h"
-#include "BKE_blender.h"
#include "BKE_context.h"
#include "BKE_text.h"
#include "BKE_context.h"
-#include "BKE_global.h"
#include "BKE_main.h"
#include "BPY_extern.h"
@@ -210,9 +207,7 @@ static void bpy_init_modules( void )
/* PyModule_AddObject( mod, "doc", BPY_rna_doc() ); */
PyModule_AddObject( mod, "props", BPY_rna_props() );
PyModule_AddObject( mod, "ops", BPY_operator_module() ); /* ops is now a python module that does the conversion from SOME_OT_foo -> some.foo */
- PyModule_AddObject( mod, "ui", BPY_ui_module() ); // XXX very experimental, consider this a test, especially PyCObject is not meant to be permanent
-
-
+ PyModule_AddObject( mod, "app", BPY_app_struct() );
/* bpy context */
{
@@ -224,20 +219,6 @@ static void bpy_init_modules( void )
PyModule_AddObject(mod, "context", (PyObject *)bpy_context_module);
}
- /* blender info that wont change at runtime, add into _bpy */
- {
- extern char bprogname[]; /* argv[0] from creator.c */
-
- PyObject *mod_dict= PyModule_GetDict(mod);
- char tmpstr[256];
- PyModule_AddStringConstant(mod, "_HOME", BLI_gethome());
- PyDict_SetItemString(mod_dict, "_VERSION", Py_BuildValue("(iii)", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION));
- sprintf(tmpstr, "%d.%02d (sub %d)", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION);
- PyModule_AddStringConstant(mod, "_VERSION_STR", tmpstr);
- PyModule_AddStringConstant(mod, "_BINPATH", bprogname);
- PyModule_AddIntConstant(mod, "_DEBUG", G.f & G_DEBUG ? 1:0);
- }
-
/* add our own modules dir, this is a python package */
bpy_import_test("bpy");
}
@@ -794,7 +775,7 @@ int BPY_context_get(bContext *C, const char *member, bContextDataResult *result)
if (item) printf("Context '%s' not a valid type\n", member);
else printf("Context '%s' not found\n", member);
}
- else if (G.f & G_DEBUG) {
+ else {
printf("Context '%s' found\n", member);
}
diff --git a/source/blender/python/intern/bpy_ui.c b/source/blender/python/intern/bpy_ui.c
deleted file mode 100644
index ab50ebd8bd5..00000000000
--- a/source/blender/python/intern/bpy_ui.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL 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.
- *
- * 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.
- *
- * Contributor(s): Campbell Barton
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#include "bpy_ui.h"
-#include "bpy_util.h"
-#include "bpy_rna.h" /* for rna buttons */
-#include "bpy_operator.h" /* for setting button operator properties */
-
-#include "WM_types.h" /* for WM_OP_INVOKE_DEFAULT & friends */
-
-#include "BLI_dynstr.h"
-
-#include "MEM_guardedalloc.h"
-#include "BKE_global.h" /* evil G.* */
-#include "BKE_context.h"
-
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h" /* only for SpaceLink */
-#include "UI_interface.h"
-#include "WM_api.h"
-
-/* Dummy Module, may want to include non RNA UI functions here, else it can be removed */
-
-static struct PyMethodDef ui_methods[] = {
- {NULL, NULL, 0, NULL}
-};
-
-static struct PyModuleDef ui_module = {
- PyModuleDef_HEAD_INIT,
- "_bpy.ui",
- "",
- -1,/* multiple "initialization" just copies the module dict. */
- ui_methods,
- NULL, NULL, NULL, NULL
-};
-
-PyObject *BPY_ui_module( void )
-{
- PyObject *submodule;
- submodule= PyModule_Create(&ui_module);
-
- /* INCREF since its its assumed that all these functions return the
- * module with a new ref like PyDict_New, since they are passed to
- * PyModule_AddObject which steals a ref */
- Py_INCREF(submodule);
-
- return submodule;
-}
diff --git a/source/blender/python/intern/bpy_ui.h b/source/blender/python/intern/bpy_ui.h
deleted file mode 100644
index 4182a32d3f0..00000000000
--- a/source/blender/python/intern/bpy_ui.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL 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.
- *
- * 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.
- *
- * Contributor(s): Campbell Barton
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-#ifndef BPY_UI_H__
-#define BPY_UI_H__
-
-#include <Python.h>
-
-PyObject *BPY_ui_module( void );
-
-#endif
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index d6938aa958c..bb94ee2fe0f 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -88,11 +88,11 @@ IF(WIN32)
ENDIF(WIN32)
IF(WITH_BUILDINFO)
- ADD_DEFINITIONS(-DBUILD_DATE="${BUILD_DATE}")
- ADD_DEFINITIONS(-DBUILD_TIME="${BUILD_TIME}")
- ADD_DEFINITIONS(-DBUILD_REV="${BUILD_REV}")
- ADD_DEFINITIONS(-DBUILD_PLATFORM="${CMAKE_SYSTEM_NAME}")
- ADD_DEFINITIONS(-DBUILD_TYPE="${CMAKE_BUILD_TYPE}")
+ ADD_DEFINITIONS(-DBUILD_DATE=${BUILD_DATE})
+ ADD_DEFINITIONS(-DBUILD_TIME=${BUILD_TIME})
+ ADD_DEFINITIONS(-DBUILD_REV=${BUILD_REV})
+ ADD_DEFINITIONS(-DBUILD_PLATFORM=${CMAKE_SYSTEM_NAME})
+ ADD_DEFINITIONS(-DBUILD_TYPE=${CMAKE_BUILD_TYPE})
SET(EXESRC ${EXESRC} buildinfo.c)
ENDIF(WITH_BUILDINFO)