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
path: root/doc
diff options
context:
space:
mode:
authorXiao Xiangquan <xiaoxiangquan@gmail.com>2011-08-10 18:32:03 +0400
committerXiao Xiangquan <xiaoxiangquan@gmail.com>2011-08-10 18:32:03 +0400
commit465c3b82fa8320c0366eaa72b2319c8b42f9c8f1 (patch)
tree9d458a8e0fdd9f12f3cb03eeeab246ca2523a707 /doc
parent16deef9e79721d3525244eaef11190b5ff0fd58b (diff)
parent22694c993a7e32767db4719e9fa37e93445b66a8 (diff)
merge with trunk r39216
Diffstat (limited to 'doc')
-rw-r--r--doc/doxygen/Doxyfile2
-rw-r--r--doc/python_api/blender-org/static/default.css_t2
-rw-r--r--[-rwxr-xr-x]doc/python_api/examples/bge.constraints.py12
-rw-r--r--[-rwxr-xr-x]doc/python_api/examples/bge.texture.1.py16
-rw-r--r--[-rwxr-xr-x]doc/python_api/examples/bge.texture.py10
-rw-r--r--[-rwxr-xr-x]doc/python_api/examples/blf.py15
-rw-r--r--[-rwxr-xr-x]doc/python_api/rst/bge.constraints.rst240
-rw-r--r--doc/python_api/rst/bge.events.rst4
-rw-r--r--doc/python_api/rst/bge.logic.rst11
-rw-r--r--doc/python_api/rst/bge.render.rst14
-rw-r--r--[-rwxr-xr-x]doc/python_api/rst/bge.texture.rst12
-rw-r--r--doc/python_api/rst/bge.types.rst4
-rw-r--r--[-rwxr-xr-x]doc/python_api/rst/bgl.rst16
-rw-r--r--doc/python_api/sphinx_doc_gen.py19
14 files changed, 283 insertions, 94 deletions
diff --git a/doc/doxygen/Doxyfile b/doc/doxygen/Doxyfile
index 79b3f1a4160..b4d3b14b9dd 100644
--- a/doc/doxygen/Doxyfile
+++ b/doc/doxygen/Doxyfile
@@ -31,7 +31,7 @@ PROJECT_NAME = Blender
# This could be handy for archiving the generated documentation or
# if some version control system is used.
-PROJECT_NUMBER = "V2.58"
+PROJECT_NUMBER = "V2.59"
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer
diff --git a/doc/python_api/blender-org/static/default.css_t b/doc/python_api/blender-org/static/default.css_t
index 6f3f25d8a6a..e6fe922e3af 100644
--- a/doc/python_api/blender-org/static/default.css_t
+++ b/doc/python_api/blender-org/static/default.css_t
@@ -219,7 +219,7 @@ div.sphinxsidebarwrapper.fixed {
}
{%- if theme_stickysidebar|tobool %}
-/* this is nice, but it it leads to hidden headings when jumping
+/* this is nice, but it leads to hidden headings when jumping
to an anchor */
/*
div.related {
diff --git a/doc/python_api/examples/bge.constraints.py b/doc/python_api/examples/bge.constraints.py
index 4cd967310cc..de2f7e0a39d 100755..100644
--- a/doc/python_api/examples/bge.constraints.py
+++ b/doc/python_api/examples/bge.constraints.py
@@ -8,11 +8,11 @@ from bge import constraints
# get object list
objects = logic.getCurrentScene().objects
-
+
# get object named Object1 and Object 2
object_1 = objects["Object1"]
object_2 = objects["Object2"]
-
+
# want to use Edge constraint type
constraint_type = 2
@@ -31,7 +31,7 @@ edge_angle_y = 1.0
edge_angle_z = 0.0
# create an edge constraint
-constraints.createConstraint( physics_id_1, physics_id_2,
- constraint_type,
- edge_position_x, edge_position_y, edge_position_z,
- edge_angle_x, edge_angle_y, edge_angle_z )
+constraints.createConstraint(physics_id_1, physics_id_2,
+ constraint_type,
+ edge_position_x, edge_position_y, edge_position_z,
+ edge_angle_x, edge_angle_y, edge_angle_z)
diff --git a/doc/python_api/examples/bge.texture.1.py b/doc/python_api/examples/bge.texture.1.py
index 74b37e72994..faa0ae736e8 100755..100644
--- a/doc/python_api/examples/bge.texture.1.py
+++ b/doc/python_api/examples/bge.texture.1.py
@@ -6,29 +6,31 @@ createTexture() and removeTexture() are to be called from a module Python
Controller.
"""
from bge import logic
-from bge import texture
+from bge import texture
+
def createTexture(cont):
"""Create a new Dynamic Texture"""
object = cont.owner
-
+
# get the reference pointer (ID) of the internal texture
ID = texture.materialID(obj, 'IMoriginal.png')
-
- # create a texture object
+
+ # create a texture object
object_texture = texture.Texture(object, ID)
-
+
# create a new source with an external image
url = logic.expandPath("//newtexture.jpg")
new_source = texture.ImageFFmpeg(url)
-
+
# the texture has to be stored in a permanent Python object
logic.texture = object_texture
-
+
# update/replace the texture
logic.texture.source = new_source
logic.texture.refresh(False)
+
def removeTexture(cont):
"""Delete the Dynamic Texture, reversing back the final to its original state."""
try:
diff --git a/doc/python_api/examples/bge.texture.py b/doc/python_api/examples/bge.texture.py
index 0ec9aa16bca..70e4d6d9377 100755..100644
--- a/doc/python_api/examples/bge.texture.py
+++ b/doc/python_api/examples/bge.texture.py
@@ -9,14 +9,14 @@ from bge import logic
cont = logic.getCurrentController()
obj = cont.owner
-
-# the creation of the texture must be done once: save the
+
+# the creation of the texture must be done once: save the
# texture object in an attribute of bge.logic module makes it persistent
if not hasattr(logic, 'video'):
-
+
# identify a static texture by name
matID = texture.materialID(obj, 'IMvideo.png')
-
+
# create a dynamic texture that will replace the static texture
logic.video = texture.Texture(obj, matID)
@@ -24,7 +24,7 @@ if not hasattr(logic, 'video'):
movie = logic.expandPath('//trailer_400p.ogg')
logic.video.source = texture.VideoFFmpeg(movie)
logic.video.source.scale = True
-
+
# quick off the movie, but it wont play in the background
logic.video.source.play()
diff --git a/doc/python_api/examples/blf.py b/doc/python_api/examples/blf.py
index 3ab7f789ce8..f6e87cf488d 100755..100644
--- a/doc/python_api/examples/blf.py
+++ b/doc/python_api/examples/blf.py
@@ -1,6 +1,7 @@
"""
Hello World Text Example
++++++++++++++++++++++++
+
Blender Game Engine example of using the blf module. For this module to work we
need to use the OpenGL wrapper :class:`~bgl` as well.
"""
@@ -11,31 +12,33 @@ from bge import logic
import bgl
import blf
+
def init():
"""init function - runs once"""
# create a new font object, use external ttf file
font_path = logic.expandPath('//Zeyada.ttf')
- # store the font indice - to use later
+ # store the font indice - to use later
logic.font_id = blf.load(font_path)
- # set the font drawing routine to run every frame
+ # set the font drawing routine to run every frame
scene = logic.getCurrentScene()
- scene.post_draw=[write]
+ scene.post_draw = [write]
+
def write():
"""write on screen"""
width = render.getWindowWidth()
height = render.getWindowHeight()
-
+
# OpenGL setup
bgl.glMatrixMode(bgl.GL_PROJECTION)
bgl.glLoadIdentity()
bgl.gluOrtho2D(0, width, 0, height)
bgl.glMatrixMode(bgl.GL_MODELVIEW)
bgl.glLoadIdentity()
-
+
# BLF drawing routine
font_id = logic.font_id
- blf.position(font_id, (width*0.2), (height*0.3), 0)
+ blf.position(font_id, (width * 0.2), (height * 0.3), 0)
blf.size(font_id, 50, 72)
blf.draw(font_id, "Hello World")
diff --git a/doc/python_api/rst/bge.constraints.rst b/doc/python_api/rst/bge.constraints.rst
index 882bbc39b9f..da0a358dfed 100755..100644
--- a/doc/python_api/rst/bge.constraints.rst
+++ b/doc/python_api/rst/bge.constraints.rst
@@ -1,28 +1,51 @@
-Game Engine bge.constraints Module
-==================================
+Physics Constraints (bge.constraints)
+=====================================
-.. note::
- This documentation is still very weak, and needs some help!
+.. module:: bge.constraints
-.. function:: createConstraint([obj1, [obj2, [restLength, [restitution, [damping]]]]])
+.. literalinclude:: ../examples/bge.constraints.py
+
+.. function:: createConstraint(physicsid, physicsid2, constrainttype, [pivotX, pivotY, pivotZ, [axisX, axisY, axisZ, [flag]]]])
Creates a constraint.
- :arg obj1: first object on Constraint
- :type obj1: :class:'bge.types.KX_GameObject' #I think, there is no error when I use one
+ :arg physicsid: the physics id of the first object in constraint
+ :type physicsid: int
- :arg obj2: second object on Constraint
- :type obj2: :class:'bge.types.KX_GameObject' #too
+ :arg physicsid2: the physics id of the second object in constraint
+ :type physicsid2: int
- :arg restLength: #to be filled
- :type restLength: float
+ :arg constrainttype: the type of the constraint. The constraint types are:
- :arg restitution: #to be filled
- :type restitution: float
+ - :class:`POINTTOPOINT_CONSTRAINT`
+ - :class:`LINEHINGE_CONSTRAINT`
+ - :class:`ANGULAR_CONSTRAINT`
+ - :class:`CONETWIST_CONSTRAINT`
+ - :class:`VEHICLE_CONSTRAINT`
- :arg damping: #to be filled
- :type damping: float
+ :type constrainttype: int
+
+ :arg pivotX: pivot X position
+ :type pivotX: float
+
+ :arg pivotY: pivot Y position
+ :type pivotY: float
+
+ :arg pivotZ: pivot Z position
+ :type pivotZ: float
+
+ :arg axisX: X axis
+ :type axisX: float
+
+ :arg axisY: Y axis
+ :type axisY: float
+
+ :arg axisZ: Z axis
+ :type axisZ: float
+
+ :arg flag: .. to do
+ :type flag: int
.. attribute:: error
@@ -49,7 +72,7 @@ Game Engine bge.constraints Module
:type constraintId: int
:return: a vehicle constraint object.
- :rtype: :class:'KX_VehicleWrapper'
+ :rtype: :class:`bge.types.KX_VehicleWrapper`
.. function:: removeConstraint(constraintId)
@@ -60,10 +83,10 @@ Game Engine bge.constraints Module
.. function:: setCcdMode(ccdMode)
- ..note::
+ .. note::
Very experimental, not recommended
- Sets the CCD mode in the Physics Environment.
+ Sets the CCD (Continous Colision Detection) mode in the Physics Environment.
:arg ccdMode: The new CCD mode.
:type ccdMode: int
@@ -73,21 +96,21 @@ Game Engine bge.constraints Module
.. note::
Reasonable default is 0.02 (if units are meters)
- Sets the contact breaking treshold in the Physics Environment.
+ Sets tresholds to do with contact point management.
:arg breakingTreshold: The new contact breaking treshold.
:type breakingTreshold: float
.. function:: setDeactivationAngularTreshold(angularTreshold)
- Sets the deactivation angular treshold.
+ Sets the angular velocity treshold.
:arg angularTreshold: New deactivation angular treshold.
:type angularTreshold: float
.. function:: setDeactivationLinearTreshold(linearTreshold)
- Sets the deactivation linear treshold.
+ Sets the linear velocity treshold.
:arg linearTreshold: New deactivation linear treshold.
:type linearTreshold: float
@@ -104,21 +127,20 @@ Game Engine bge.constraints Module
Sets the debug mode.
Debug modes:
- - No debug: 0
- - Draw wireframe: 1
- - Draw Aabb: 2 #What's Aabb?
- - Draw freatures text: 4
- - Draw contact points: 8
- - No deactivation: 16
- - No help text: 32
- - Draw text: 64
- - Profile timings: 128
- - Enable sat comparision: 256
- - Disable Bullet LCP: 512
- - Enable CCD: 1024
- - Draw Constraints: #(1 << 11) = ?
- - Draw Constraint Limits: #(1 << 12) = ?
- - Fast Wireframe: #(1 << 13) = ?
+ - :class:`DBG_NODEBUG`
+ - :class:`DBG_DRAWWIREFRAME`
+ - :class:`DBG_DRAWAABB`
+ - :class:`DBG_DRAWFREATURESTEXT`
+ - :class:`DBG_DRAWCONTACTPOINTS`
+ - :class:`DBG_NOHELPTEXT`
+ - :class:`DBG_DRAWTEXT`
+ - :class:`DBG_PROFILETIMINGS`
+ - :class:`DBG_ENABLESATCOMPARISION`
+ - :class:`DBG_DISABLEBULLETLCP`
+ - :class:`DBG_ENABLECCD`
+ - :class:`DBG_DRAWCONSTRAINTS`
+ - :class:`DBG_DRAWCONSTRAINTLIMITS`
+ - :class:`DBG_FASTWIREFRAME`
:arg mode: The new debug mode.
:type mode: int
@@ -138,7 +160,10 @@ Game Engine bge.constraints Module
.. function:: setLinearAirDamping(damping)
- Not implemented.
+ .. note::
+ Not implemented.
+
+ Sets the linear air damping for rigidbodies.
.. function:: setNumIterations(numiter)
@@ -156,10 +181,10 @@ Game Engine bge.constraints Module
.. function:: setSolverDamping(damping)
- ..note::
+ .. note::
Very experimental, not recommended
- Sets the solver damping.
+ Sets the damper constant of a penalty based solver.
:arg damping: New damping for the solver.
:type damping: float
@@ -169,7 +194,7 @@ Game Engine bge.constraints Module
.. note::
Very experimental, not recommended
- Sets the solver tau.
+ Sets the spring constant of a penalty based solver.
:arg tau: New tau for the solver.
:type tau: float
@@ -189,7 +214,7 @@ Game Engine bge.constraints Module
.. note::
Very experimental, not recommended
- Sets the sor constant.
+ Sets the successive overrelaxation constant.
:arg sor: New sor value.
:type sor: float
@@ -197,3 +222,136 @@ Game Engine bge.constraints Module
.. function:: setUseEpa(epa)
Not implemented.
+
+.. data:: DBG_NODEBUG
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ No debug.
+
+.. data:: DBG_DRAWWIREFRAME
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Draw wireframe in debug.
+
+.. data:: DBG_DRAWAABB
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Draw Axis Aligned Bounding Box in debug.
+
+.. data:: DBG_DRAWFREATURESTEXT
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Draw freatures text in debug.
+
+.. data:: DBG_DRAWCONTACTPOINTS
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Draw contact points in debug.
+
+.. data:: DBG_NOHELPTEXT
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Debug without help text.
+
+.. data:: DBG_DRAWTEXT
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Draw text in debug.
+
+.. data:: DBG_PROFILETIMINGS
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Draw profile timings in debug.
+
+.. data:: DBG_ENABLESATCOMPARISION
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Enable sat comparision in debug.
+
+.. data:: DBG_DISABLEBULLETLCP
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Disable Bullet LCP.
+
+.. data:: DBG_ENABLECCD
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Enable Continous Colision Detection in debug.
+
+.. data:: DBG_DRAWCONSTRAINTS
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Draw constraints in debug.
+
+.. data:: DBG_DRAWCONSTRAINTLIMITS
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Draw constraint limits in debug.
+
+.. data:: DBG_FASTWIREFRAME
+
+ .. note::
+ Debug mode to be used with function :class:`setDebugMode`
+
+ Draw a fast wireframe in debug.
+
+.. data:: POINTTOPOINT_CONSTRAINT
+
+ .. note::
+ Constraint type to be used with function :class:`createConstraint`
+
+ .. to do
+
+.. data:: LINEHINGE_CONSTRAINT
+
+ .. note::
+ Constraint type to be used with function :class:`createConstraint`
+
+ .. to do
+
+.. data:: ANGULAR_CONSTRAINT
+
+ .. note::
+ Constraint type to be used with function :class:`createConstraint`
+
+ .. to do
+
+.. data:: CONETWIST_CONSTRAINT
+
+ .. note::
+ Constraint type to be used with function :class:`createConstraint`
+
+ .. to do
+
+.. data:: VEHICLE_CONSTRAINT
+
+ .. note::
+ Constraint type to be used with function :class:`createConstraint`
+
+ .. to do
diff --git a/doc/python_api/rst/bge.events.rst b/doc/python_api/rst/bge.events.rst
index cc76ecded85..074e928f0d8 100644
--- a/doc/python_api/rst/bge.events.rst
+++ b/doc/python_api/rst/bge.events.rst
@@ -1,6 +1,6 @@
-Game Engine bge.events Module
-=============================
+Game Keys (bge.events)
+======================
*****
Intro
diff --git a/doc/python_api/rst/bge.logic.rst b/doc/python_api/rst/bge.logic.rst
index f7163ea928e..798491b4710 100644
--- a/doc/python_api/rst/bge.logic.rst
+++ b/doc/python_api/rst/bge.logic.rst
@@ -1,6 +1,7 @@
-Game Engine bge.logic Module
-============================
+Game Logic (bge.logic)
+======================
+
*****
Intro
*****
@@ -216,6 +217,12 @@ General functions
Loads a scene into the game engine.
+ .. note::
+
+ This function is not effective immediately, the scene is queued
+ and added on the next logic cycle where it will be available
+ from `getSceneList`
+
:arg name: The name of the scene
:type name: string
:arg overlay: Overlay or underlay (optional)
diff --git a/doc/python_api/rst/bge.render.rst b/doc/python_api/rst/bge.render.rst
index 9f17455601b..10514049a8a 100644
--- a/doc/python_api/rst/bge.render.rst
+++ b/doc/python_api/rst/bge.render.rst
@@ -1,6 +1,6 @@
-Game Engine bge.render Module
-=============================
+Rasterizer (bge.render)
+=======================
*****
Intro
@@ -16,8 +16,8 @@ Intro
import bge.render
import bge.logic
- # SCALE sets the speed of motion
- SCALE=[1, 0.5]
+ # scale sets the speed of motion
+ scale = 1.0, 0.5
co = bge.logic.getCurrentController()
obj = co.getOwner()
@@ -27,8 +27,8 @@ Intro
# Transform the mouse coordinates to see how far the mouse has moved.
def mousePos():
- x = (bge.render.getWindowWidth()/2 - mouse.getXPosition())*SCALE[0]
- y = (bge.render.getWindowHeight()/2 - mouse.getYPosition())*SCALE[1]
+ x = (bge.render.getWindowWidth() / 2 - mouse.getXPosition()) * scale[0]
+ y = (bge.render.getWindowHeight() / 2 - mouse.getYPosition()) * scale[1]
return (x, y)
pos = mousePos()
@@ -43,7 +43,7 @@ Intro
bge.logic.addActiveActuator(wmotion, True)
# Centre the mouse
- bge.render.setMousePosition(bge.render.getWindowWidth()/2, bge.render.getWindowHeight()/2)
+ bge.render.setMousePosition(bge.render.getWindowWidth() / 2, bge.render.getWindowHeight() / 2)
*********
Constants
diff --git a/doc/python_api/rst/bge.texture.rst b/doc/python_api/rst/bge.texture.rst
index 996f79a313a..0b32c7a393b 100755..100644
--- a/doc/python_api/rst/bge.texture.rst
+++ b/doc/python_api/rst/bge.texture.rst
@@ -1,10 +1,6 @@
-Game Engine bge.texture Module
-==============================
-
-.. note::
- This documentation is still very weak, and needs some help! Right now they are mostly a collection
- of the docstrings found in the bge.texture source code + some random places filled with text.
+Video Texture (bge.texture)
+===========================
*****
Intro
@@ -40,6 +36,10 @@ When the texture object is deleted, the new texture is deleted and the old textu
.. module:: bge.texture
+.. literalinclude:: ../examples/bge.texture.py
+
+.. literalinclude:: ../examples/bge.texture.1.py
+
.. class:: VideoFFmpeg(file [, capture=-1, rate=25.0, width=0, height=0])
FFmpeg video source
diff --git a/doc/python_api/rst/bge.types.rst b/doc/python_api/rst/bge.types.rst
index e42b362c771..36ef9154e17 100644
--- a/doc/python_api/rst/bge.types.rst
+++ b/doc/python_api/rst/bge.types.rst
@@ -1,6 +1,6 @@
-Game Engine bge.types Module
-=============================
+Game Types (bge.types)
+======================
.. module:: bge.types
diff --git a/doc/python_api/rst/bgl.rst b/doc/python_api/rst/bgl.rst
index 76b7442f2c5..5f3158bf5dd 100755..100644
--- a/doc/python_api/rst/bgl.rst
+++ b/doc/python_api/rst/bgl.rst
@@ -1,6 +1,6 @@
-bgl module (OpenGL wrapper)
-===========================
+OpenGL Wrapper (bgl)
+====================
.. module:: bgl
@@ -15,7 +15,7 @@ collections of tutorials.
The "red book": "I{OpenGL Programming Guide: The Official Guide to Learning
OpenGL}" and the online NeHe tutorials are two of the best resources.
-..note::
+.. note::
You can use the :class:`Image` type to load and set textures.
See :class:`Image.gl_load` and :class:`Image.gl_load`,
for example.
@@ -71,8 +71,8 @@ OpenGL}" and the online NeHe tutorials are two of the best resources.
.. seealso:: `OpenGL Docs <http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/begin.html>`_
:type mode: Enumerated constant
- :arg mode: Specifies the primitive that will be create from vertices between glBegin and
- glEnd.
+ :arg mode: Specifies the primitive that will be create from vertices between
+ glBegin and glEnd.
.. function:: glBindTexture(target, texture):
@@ -1386,7 +1386,7 @@ OpenGL}" and the online NeHe tutorials are two of the best resources.
bgl.glGetFloatv(bgl.GL_MODELVIEW_MATRIX, view_matrix)
f = 1.0 / view_matrix[0]
- # Instead of the usual glRasterPos2i(xval, yval)
+ # Instead of the usual glRasterPos2i(xval, yval)
bgl.glRasterPos2f(xval * f, yval * f)
@@ -1848,10 +1848,13 @@ class Buffer:
.. code-block:: python
import bgl
+
myByteBuffer = bgl.Buffer(bgl.GL_BYTE, [32, 32])
bgl.glGetPolygonStipple(myByteBuffer)
+
print(myByteBuffer.dimensions)
print(myByteBuffer.to_list())
+
sliceBuffer = myByteBuffer[0:16]
print(sliceBuffer)
@@ -1886,4 +1889,3 @@ class Buffer:
the Buffer. If a template is not passed in all fields will be initialized to 0.
:rtype: Buffer object
:return: The newly created buffer as a PyObject.
-
diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py
index 6b514cf9eb1..f8561c719bc 100644
--- a/doc/python_api/sphinx_doc_gen.py
+++ b/doc/python_api/sphinx_doc_gen.py
@@ -416,6 +416,7 @@ def pymodule2sphinx(BASEPATH, module_name, module, title):
del key, descr
classes = []
+ submodules = []
for attribute in module_dir:
if not attribute.startswith("_"):
@@ -437,6 +438,8 @@ def pymodule2sphinx(BASEPATH, module_name, module, title):
py_c_func2sphinx("", fw, module_name, None, attribute, value, is_class=False)
elif value_type == type:
classes.append((attribute, value))
+ elif issubclass(value_type, types.ModuleType):
+ submodules.append((attribute, value))
elif value_type in (bool, int, float, str, tuple):
# constant, not much fun we can do here except to list it.
# TODO, figure out some way to document these!
@@ -444,12 +447,26 @@ def pymodule2sphinx(BASEPATH, module_name, module, title):
write_indented_lines(" ", fw, "constant value %s" % repr(value), False)
fw("\n")
else:
- print("\tnot documenting %s.%s" % (module_name, attribute))
+ print("\tnot documenting %s.%s of %r type" % (module_name, attribute, value_type.__name__))
continue
attribute_set.add(attribute)
# TODO, more types...
+ # TODO, bpy_extras does this already, mathutils not.
+ """
+ if submodules:
+ fw("\n"
+ "**********\n"
+ "Submodules\n"
+ "**********\n"
+ "\n"
+ )
+ for attribute, submod in submodules:
+ fw("* :mod:`%s.%s`\n" % (module_name, attribute))
+ fw("\n")
+ """
+
# write collected classes now
for (type_name, value) in classes:
# May need to be its own function