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/python/api2_2x/doc/API_intro.py')
-rw-r--r--source/blender/python/api2_2x/doc/API_intro.py247
1 files changed, 0 insertions, 247 deletions
diff --git a/source/blender/python/api2_2x/doc/API_intro.py b/source/blender/python/api2_2x/doc/API_intro.py
deleted file mode 100644
index a630c47229e..00000000000
--- a/source/blender/python/api2_2x/doc/API_intro.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# This is not a real module, it's simply an introductory text.
-
-"""
-The Blender Python API Reference
-================================
-
- An asterisk (*) means the module has been updated.
-
- for a full list of changes since 2.42 see U{http://mediawiki.blender.org/index.php/Release_Notes/Notes243/Python_API}
-
- Top Module:
- -----------
-
- - L{Blender}
- - L{bpy<Bpy>} (experimental)
-
- Submodules:
- -----------
- - L{Armature} (*)
- - L{NLA}
- - L{Action<NLA.Action>}
- - L{BezTriple} (*)
- - L{BGL}
- - L{Camera} (*)
- - L{Curve} (*)
- - L{Draw} (*)
- - L{Effect}
- - L{Geometry} (*)
- - L{Group} (*)
- - L{Image} (*)
- - L{Ipo} (*)
- - L{IpoCurve} (*)
- - L{Key} (*)
- - L{Lamp}
- - L{Lattice} (*)
- - L{Library} (*)
- - L{Material} (*)
- - L{Mathutils} (*)
- - L{Mesh} (*)
- - L{MeshPrimitives} (*)
- - L{Metaball} (*)
- - L{NMesh} (deprecated)
- - L{Noise}
- - L{Object} (*)
- - L{Modifier} (*)
- - L{Pose} (*)
- - L{Constraint} (*)
- - L{ActionStrips<NLA>} (*)
- - L{Registry}
- - L{Scene} (*)
- - L{Radio}
- - L{Render} (*)
- - L{Sound} (*)
- - L{Text}
- - L{Text3d}
- - L{Font}
- - L{Texture} (*)
- - L{TimeLine}
- - L{Types}
- - L{Window}
- - L{Theme} (*)
- - L{World}
- - L{sys<Sys>}
-
- Additional information:
- -----------------------
-
- - L{Special features<API_related>}:
- - scripts: registering in menus, documenting, configuring (new);
- - command line examples (new);
- - script links (*), space handler script links, Group module (new).
-
-Introduction:
-=============
-
- This reference documents the Blender Python API, a growing collection of
- Python modules (libraries) that give access to part of the program's internal
- data and functions.
-
- Through scripting Blender can be extended in real-time via
- U{Python <www.python.org>}, an impressive high level, multi-paradigm, open
- source language. Newcomers are recommended to start with the tutorial that
- comes with it.
-
- This opens many interesting possibilities, ranging from automating repetitive
- tasks to adding new functionality to the program: procedural models,
- importers and exporters, even complex applications and so on. Blender itself
- comes with some scripts, but many others can be found in the Scripts & Plugins
- sections and forum posts at the Blender-related sites listed below.
-
-Scripting and Blender:
-======================
-
-These are the basic ways to execute scripts in Blender:
-
- 1. They can be loaded or typed as text files in the Text Editor window, then
- executed with ALT+P.
- 2. Via command line: C{blender -P <scriptname>} will start Blender and execute
- the given script. <scriptname> can be a filename in the user's file system or
- the name of a text saved in a .blend Blender file:
- 'blender myfile.blend -P textname'.
- 3. Via command line in I{background mode}: use the '-b' flag (the order is
- important): C{blender -b <blendfile> -P <scriptname>}. <blendfile> can be any
- .blend file, including the default .B.blend that is in Blender's home directory
- L{Blender.Get}('homedir'). In this mode no window will be opened and the
- program will leave as soon as the script finishes execution.
- 4. Properly registered scripts can be selected directly from the program's
- menus.
- 5. Scriptlinks: these are also loaded or typed in the Text Editor window and
- can be linked to objects, materials or scenes using the Scriptlink buttons
- tab. Script links get executed automatically when their events (ONLOAD,
- REDRAW, FRAMECHANGED) are triggered. Normal scripts can create (L{Text}) and
- link other scripts to objects and events, see L{Object.Object.addScriptLink},
- for example.
- 6. A script can call another script (that will run in its own context, with
- its own global dictionary) with the L{Blender.Run} module function.
-
-
-Interaction with users:
------------------------
-
- Scripts can:
- - simply run and exit;
- - pop messages, menus and small number and text input boxes;
- - draw graphical user interfaces (GUIs) with OpenGL calls and native
- program buttons, which stay there accepting user input like any other
- Blender window until the user closes them;
- - attach themselves to a space's event or drawing code (aka space handlers,
- L{check here<API_related>});
- - make changes to the 3D View (set visible layer(s), view point, etc);
- - grab the main input event queue and process (or pass to Blender) selected
- keyboard, mouse, redraw events -- not considered good practice, but still
- available for private use;
- - tell Blender to execute other scripts (see L{Blender.Run}());
- - use external Python libraries, if available.
-
- You can read the documentation for the L{Window}, L{Draw} and L{BGL} modules
- for more information and also check the Python site for external modules that
- might be useful to you. Note though that any imported module will become a
- requirement of your script, since Blender itself does not bundle external
- modules.
-
-Command line mode:
-------------------
-
- Python was embedded in Blender, so to access BPython modules you need to
- run scripts from the program itself: you can't import the Blender module
- into an external Python interpreter.
-
- On the other hand, for many tasks it's possible to control Blender via
- some automated process using scripts. Interested readers should learn about
- features like "OnLoad" script links, the "-b <blendfile>" (background mode)
- and "-P <script>" (run script) command line options and API calls like
- L{Blender.Save}, L{Blender.Load}, L{Blender.Quit} and the L{Library} and
- L{Render} modules.
-
- Note that command line scripts are run before Blender initializes its windows
- (and in '-b' mode no window will be initialized), so many functions that get
- or set window related attributes (like most in L{Window}) don't work here. If
- you need those, use an ONLOAD script link (see L{Scene.Scene.addScriptLink})
- instead -- it's also possible to use a command line script to write or set an
- ONLOAD script link. Check the L{Blender.mode} module var to know if Blender
- is being executed in "background" or "interactive" mode.
-
- L{Click here for command line and background mode examples<API_related>}.
-
-
-Demo mode:
-----------
-
- Blender has a demo mode, where once started it can work without user
- intervention, "showing itself off". Demos can render stills and animations,
- play rendered or real-time animations, calculate radiosity simulations and
- do many other nifty things. If you want to turn a .blend file into a demo,
- write a script to run the show and link it as a scene "OnLoad" scriptlink.
- The demo will then be played automatically whenever this .blend file is
- opened, B{unless Blender was started with the "-y" parameter}.
-
-The Game Engine API:
---------------------
-
- Blender has a game engine for users to create and play 3d games. This
- engine lets programmers add scripts to improve game AI, control, etc, making
- more complex interaction and tricks possible. The game engine API is
- separate from the Blender Python API this document references and you can
- find its own ref doc in the doc section of the main sites below.
-
-Blender Data Structures:
-------------------------
-
- Programs manipulate data structures. Blender python scripts are no exception.
- Blender uses an Object Oriented architecture. The BPython interface tries to
- present Blender objects and their attributes in the same way you see them
- through the User Interface (the GUI). One key to BPython programming is
- understanding the information presented in Blender's OOPS window where Blender
- objects and their relationships are displayed.
-
- Each Blender graphic element (Mesh, Lamp, Curve, etc.) is composed from two
- parts: an Object and ObData. The Object holds information about the position,
- rotation and size of the element. This is information that all elements have
- in common. The ObData holds information specific to that particular type of
- element.
-
- Each Object has a link to its associated ObData. A single ObData may be
- shared by many Objects. A graphic element also has a link to a list of
- Materials. By default, this list is associated with the ObData.
-
- All Blender objects have a unique name. However, the name is qualified by the
- type of the object. This means you can have a Lamp Object called Lamp.001
- (OB:Lamp.001) and a Lamp ObData called Lamp.001 (LA:Lamp.001).
-
- For a more in-depth look at Blender internals, and some understanding of why
- Blender works the way it does, see the U{Blender Architecture document
- <http://www.blender3d.org/cms/Blender_Architecture.336.0.html>}.
-
-
-A note to newbie script writers:
---------------------------------
-
- Interpreted languages are known to be much slower than compiled code, but for
- many applications the difference is negligible or acceptable. Also, with
- profiling (or even simple direct timing with L{Blender.sys.time<Sys.time>}) to
- identify slow areas and well thought optimizations, the speed can be
- I{considerably} improved in many cases. Try some of the best BPython scripts
- to get an idea of what can be done, you may be surprised.
-
-@author: The Blender Python Team
-@requires: Blender 2.43 or newer.
-@version: 2.43
-@see: U{www.blender3d.org<http://www.blender3d.org>}: main site
-@see: U{www.blender.org<http://www.blender.org>}: documentation and forum
-@see: U{blenderartists.org<http://blenderartists.org>}: user forum
-@see: U{projects.blender.org<http://projects.blender.org>}
-@see: U{blender architecture<http://www.blender3d.org/cms/Blender_Architecture.336.0.html>}: blender architecture document
-@see: U{www.python.org<http://www.python.org>}
-@see: U{www.python.org/doc<http://www.python.org/doc>}
-@see: U{Blending into Python<en.wikibooks.org/wiki/Blender_3D:_Blending_Into_Python>}: User contributed documentation, featuring a blender/python cookbook with many examples.
-
-@note: the official version of this reference guide is only updated for each
- new Blender release. But you can build the current CVS
- version yourself: install epydoc, grab all files in the
- source/blender/python/api2_2x/doc/ folder of Blender's CVS and use the
- epy_docgen.sh script also found there to generate the html docs.
- Naturally you will also need a recent Blender binary to try the new
- features. If you prefer not to compile it yourself, there is a testing
- builds forum at U{blender.org<http://www.blender.org>}.
-"""