Commit Graph

211 Commits

Author SHA1 Message Date
Luca Bonavita
996efebbe3 == python api doc ==
First commit to make some structure in doc/ directory.

- moved source/blender/python/doc -> doc/python_api
- moved source/gameengine/PyDoc/*.rst -> doc/python_api/rst
- modified accordingly sphinx_doc_gen.py and sphinx_doc_gen.sh
  (later on I'll try alternative/ scripts by neXyon as promised :)
- source/gameengine/PyDoc/ is still there because contains epydoc stuff for the bge, will ask more and look into it later
2010-10-13 10:42:33 +00:00
Campbell Barton
bd00aa9727 patch [#23781] Dynamically Load Actions
from Mitchell Stokes (moguri)
2010-10-09 10:45:25 +00:00
Mitchell Stokes
02d97e4da2 Campbell requested that I remove one of the bge.events.RETKEY aliases, so I'm removing bge.events.RETURNKEY. 2010-10-06 00:36:12 +00:00
Mitchell Stokes
0c7dce887c Updating the bge.types docs to note which KX_GameObject attributes return mathutils objects. Also adding localLinearVelocity, worldLinearVelocity, localAngularVelocity, and worldAngularVelocity to the KX_GameObject docs. 2010-10-05 19:05:09 +00:00
Mitchell Stokes
3cf2d2fd4e A bit of bge.events work:
* A few places in the bge.events docs mentioned bge.keys, when it should have been bge.events
  * Created two aliases to bge.events.RETKEY: ENTERKEY and RETURNKEY
  * ENTERKEY and RETURNKEY have been added to the docs and RETKEY marked as deprecated
  * Added an example of using bge.logic.keyboard to the bge.events docs
2010-10-05 05:44:15 +00:00
Mitchell Stokes
bcf6726b0b Making the docs for bge.types.KX_SCA_AddObjectActuator.instantAddObject() more clear. Thanks to delaney for pointing this out. 2010-10-03 01:32:01 +00:00
Guillermo S. Romero
a8269c8946 SVN maintenance. 2010-09-03 03:30:20 +00:00
Mitchell Stokes
57e0d677c6 Committing patch [#23489] add method getEventStatus() to PythonKeyboard and PythonMouse by Geoff Gollmer (gomer)
This patch makes SCA_PythonKeyboard.events and SCA_PythonMouse.events return a dictionary of all inputs (including inactive) instead of a list of active inputs.

Example usage:
import bge

if bge.logic.keyboard.events[bge.events.SPACEBAR] = bge.logic.KX_INPUT_JUST_ACTIVATED:
  print("Spacebar pressed!")

A couple of changes to the patch:
  * Wrap python stuff in #ifndef DISABLE_PYTHON
  * Clear and decref m_event_dict in the destructors

A couple of things not related to the patch:
  * Made member variables private
  * Removed a commented out (and no longer used) method (SCA_PythonMouse.show())
2010-08-30 00:18:50 +00:00
Mitchell Stokes
5c23537daa Committing patch [#23278] (by me)
This patch allows a user to pass binary data to LibLoad() to load a blend file from memory instead of a file path. I don't know how useful this will be for others, but I've used it so far for:
  * Decrypting .blend files and loading them without having to store the .blend on the hard drive
  * Pulling .blend data out of an archive and loading it (again skipping the hard drive)

So, it seems the biggest use for this is skipping a bit of file IO (and possibly some security problems).

Example usage:
import bge

with f as open('myfile.blend', 'rb'):
    data = f.read()

bge.logic.LibLoad('Name', 'Scene', data)
2010-08-28 02:07:55 +00:00
Campbell Barton
ec2c52c9c8 SCons
- remove scons option WITH_BF_FHS, its not needed anymore.
- comment WITH_BF_DOCS, was using epydocs which we dont use now.
- blenderlite target was broken, always using openmp.
- building without python wasnt working.

- fixed some warnings.
2010-08-02 16:27:41 +00:00
Mitchell Stokes
1b7d264f1e Fixing a typo in the BGE Python API:
BL_ArmatureChannel.rotaion_euler -> BL_ArmatureChannel.rotation_euler

Making the docs match the code:
  BL_ArmatureChannel.rotation -> BL_ArmatureChannel.rotation_quaternion
  BL_ArmatureChannel.euler_rotation -> BL_ArmatureChannel.rotation_euler
2010-07-30 04:57:27 +00:00
Campbell Barton
75410037fd - correct some spelling errors.
- remove FreeCamera struct (wasnt used)
- remove world color alpha values (not used anywhre).
2010-07-20 10:41:08 +00:00
Mitchell Stokes
952821dfd4 BGE doc updates:
Fixed some typos and added docs for the following functions:

startGame()
endGame()
restartGame()
LibLoad()
LibNew()
LibFree()
2010-07-16 09:10:46 +00:00
Campbell Barton
dd3f9cff91 patch from Goran Milovanovic for the BGE python api.
camera.ortho_scale (use when in ortho mode only)

(own previous commit incorrectly removed thumb metadata from new imbuf)
2010-07-14 20:52:04 +00:00
Luca Bonavita
dba99b544b == python api docs ==
* source/gameengine/PyDoc/bge.types.rst:
  KX_PolygonMaterial was missing the parent class indication (PyObjectPlus)

* source/blender/python/doc/sphinx_doc_gen.py:
  * unified all the "undocumented" descriptions, like
    http://www.blender.org/documentation/250PythonDoc/bpy.ops.anim.html#bpy.ops.anim.keyframe_delete_button
    so that it will be easy for Alex to CCS 'em and also now people will have a link to contribute descriptions,
    see http://wiki.blender.org/index.php/Dev:2.5/Py/API/Documentation/Contribute
  * moved the note about bpy_struct not being available in the api
    in a proper note directive, so that it's more evident
    (I didn't see it at first)
2010-06-11 22:41:13 +00:00
Luca Bonavita
0cae214a78 == python api docs ==
bge.types
---------

- removed lists if they were already available in bge.logic and crosslinked
  where the list contained description, moved the descriptions in bge.logic
  so we have useful thing in one place only
- fixed a lot of bad formatting, like bad indentation and usage of TAB
- changed from literal to codeblocks that smerch for the useful suggestion :)
- whered appropriate I've moved code examples to the end, after notes and all
  it is blocking to have a big black block before actually see a method parameters or return type
- have doubt about the list at bge.types.html#bge.types.SCA_MouseSensor.mode
  possibly tomorrow will ask Dalai
  
bge.logic
---------

- added sensor status list
- cross linked with bge.types where needed
- added a section "ShapeAction Actuator" because in bge.types these constants are docuemented, but in 2.5 I don't see the ShapeAction Actuator 
(anymore, or for now)
  I'll ask Dalai tomorrow or when possible (check bge.logic.html#shape-action-actuator once cambo rebuilds the docs)
- moved descriptions from bge.types lists to logic page where appropriate
- where possible, added custom directive :value: so we have a consistent way to show the value of constants
2010-06-07 23:50:43 +00:00
Luca Bonavita
2beef23a9b == python api docs ==
some more cleanup:

  - made structure in source/gameengine/PyDoc/bge.events.rst to be able to crosslink properly
  - cleaned notes and warnings syntax, and also now they are always the last elements after all the other tags
  - substituted some lists of possible values of a parameter with links to lists of values (not finished)
    like in bge.types.html#bge.types.SCA_PythonKeyboard
  - uncertain about some values, like in http://www.blender.org/documentation/250PythonDoc/bge.types.html#bge.types.SCA_ISensor.status 
    (list of KX_SENSOR_INACTIVE,... etc aren't documented or non-existant, will investigate)
2010-06-03 14:26:38 +00:00
Luca Bonavita
f5951ac2ea == python api docs ==
- now that I've made syntax changes in the previous commit I moved blocks to to have sensors/actuators grouped together
- added sections to have a nice table of contents
- formatted 2 lists and links to classes
2010-06-02 22:56:08 +00:00
Luca Bonavita
e58bb562d2 == python api docs ==
*  source/blender/python/doc/sphinx_doc_gen.py
	
	changed syntax for declating attributes type to use :type: instead of *type* os it

* source/gameengine/Ketsji/KX_PythonInit.cpp

	While documenting I've found that we have two naming conventions for constraints in BGE python api,
	example: KX_CONSTRAINTACT_DIRPZ and KX_ACT_CONSTRAINT_FHPX: the right convention is KX_CONSTRAINTACT_xxx
	After talking with dalai and cambpell we agreed that this kind of change is better suited for NExyon GSoC
	so I marked as TODO
	
	Also, found 2 duplicate rows, fixed after askin nexyon

* source/gameengine/PyDoc/bge.logic.rst

	there were 2 blocks for constraints, I've put them together in docs and fixed some other lines
	
* source/gameengine/PyDoc/bge.types.rst

	first cleanup: mainly started using ":type:", it was mixed usage of *type* and **type**
	started cleaning some bullet list in a way that varibles link to the constant in appropriate page
	I'll continue later
2010-06-02 21:28:17 +00:00
Luca Bonavita
8ad29c02e0 == bge api docs ==
- fixed small typo in bge.events.rst
- also testing committing to bf-blender, my first commit :)
2010-05-30 18:18:14 +00:00
Alex Sytnik
6b918fb86f = Game Engine PyDocs =
Document's headers trailing dots removed, to make them consistent with other docs.
2010-05-28 19:59:15 +00:00
Campbell Barton
45444ceee3 include game engine docs in sphinx doc generation:
bge.events, logic, render & types (others still need work)

Updated http://www.blender.org/documentation/250PythonDoc
2010-05-17 20:38:54 +00:00
Campbell Barton
3a12668e92 epydoc to sphinx markup for GameLogic module 2010-05-17 19:52:25 +00:00
Campbell Barton
882ae4ea8f convert GameKeys epydoc into sphinx markup 2010-05-16 23:25:05 +00:00
Campbell Barton
d8eace82d1 convert Rasterizer module to sphinx 2010-05-16 23:13:30 +00:00
Campbell Barton
9df8552ce3 convert GameTypes from epydoc into sphinx compatible markup, also removed deprecated functions 2010-05-16 22:57:22 +00:00
Dalai Felinto
dd2080f5c4 BGE EPY Docs: PhysicsConstraints and fixes in other modules
PhysicsConstraints module documented by Jean-François (Ninja Goliath) based on GameKit 2nd ed.
Thanks for the initiative and the great help!

General advice for anyone helping with EpyDocs:
* use :: instead of : to keep the indentation correct,
* use B{} for clarity when needed (e.g. createConstraints)

Adding F13 to F19 to complement Matt's recent commit
* There are other (not so important) functions in PhysicsConstraints module that are not exposed in the documentation right now.

The generated page is temporarily here, if someone want to review it:
http://blenderecia.orgfree.com/blender/tmp/PhysicsConstraints-module.html
2010-04-20 08:23:22 +00:00
Dalai Felinto
795b438bf5 Patch #21789 - BGE Keyboard and Mouse Python types - by Mitchell Stokes(Moguri)
The patch exposes mouse and keyboard read-only properties in the GameLogic module
Also renames bge.keys to bge.events (* Note: name of bge submodules (logic, render, ...) may change before 2.5 final release [right Campbell?]).

"""
This patch adds two new types to the BGE:
SCA_PythonKeyboard
SCA_PythonMouse

These two types allow users to make use of the keyboard and mouse without the need for a keyboard or mouse sensor.

SCA_PythonKeyboard has an events property that acts just like SCA_KeyboardSensor.events.

SCA_PythonMouse also has an events property to check for mouse events. Further more it supports getting and setting normalized cursor position (from 0.0 to 1.0) with SCA_PythonMouse.position. The cursor can be shown/hidden using SCA_PythonMouse.visible.
"""

Its use is similar with current mouse and keyboard controllers. With the exception of mouse position being normalized and writable as well (replacing Rasterizer.setMousePosition).

Code Sample:
######
from bge import logic, events

mouse = logic.mouse
keyboard = logic.keyboard

for key,status in keyboard.events:
    if status == logic.KX_INPUT_JUST_ACTIVATED:
        if key == events.WKEY:
            print(mouse.position)
            # move_forward()

mouse.visible = True # turn cursor visible
mouse.position = 0.5,0.5  # centralize mouse - use tuple
######

* Important Note: mouse.position still will not work properly for Letterbox mode.
In order to fix letterboxing I may need to move the set x,y mouse function to inside the canvas code (to avoid duplicated code between mouse sensor and bge.logic.mouse). I'll leave this for another commit though.
Thanks Mitchell for the work on that.
2010-04-17 06:52:14 +00:00
Campbell Barton
67cfc427ee PyAPI
- added new mathutils.Color() type, use with rna so we can do for eg:
 material.diffuse_color.r = 1.0
 # also has hsv access
 material.diffuse_color.s = 0.6

 - made Mathutils and Geometry module names lowercase.
2010-04-11 14:22:27 +00:00
Dalai Felinto
77f55d9cb3 BGE API DOC: a guide on how to build epydoc for windows
We have already a .sh file to build epydocs from Linux, so why not to have it in Windows as well ;) I think that this guide can help people interested in help with the API documentation to test their work.

I'm actually already in touch with at least one volunteer helping with PhysicsConstraints module. VideoTexture may not be a one man job though, for I hope this document can also help.
2010-03-30 06:37:44 +00:00
Dalai Felinto
5089663962 BGE PyDoc: fix for KX_Object not linked to the class in some actuators API page 2010-03-30 04:59:24 +00:00
Benoit Bolsee
03c81862c4 BGE patch [#21019]: Python function for Scene suspend/resume. 2010-03-28 20:50:20 +00:00
Benoit Bolsee
41425c1aa4 VideoTexture: more PyDoc. 2010-03-28 20:15:45 +00:00
Dalai Felinto
3925f58b6a BGE: fix for [#21180] - missing min and max values in the API + mode fix (interval wasn't working)
of course it wasn't only a matter of adding the properties in the api :)

The code of validValueForIntervalProperty and modeChange are the same BUT in the future they shouldn't be, for I think it's fine to keep them as separated functions.

Bonus fix: Also we are now checking if the new mode is interval and update the range expression.
2010-03-26 07:21:48 +00:00
Dalai Felinto
0119072fc3 BGE API DOC update - scene add/restart/end. patch by Gomer 2010-02-11 04:24:58 +00:00
Benoit Bolsee
a8a99a628f BGE: add audio/video synchronization capability to VideoTexture
Add optional parameter to VideoTexture.Texture refresh() method
to specify timestamp (in seconds from start of movie) of the frame
to be loaded. This value is passed down to image source and for
VideoFFmpeg source, it is used instead of current time to load
the frame from the video file.

When combined with an audio actuator, it can be used to synchronize
the sound and the image: specify the same video file in the sound
actuator and use the KX_SoundActuator time attribute as timestamp
to refresh: the frame corresponding to the sound will be loaded:

GameLogic.video.refresh(True, soundAct.time)
2010-02-07 19:18:00 +00:00
Campbell Barton
1943a73439 rename game object obcolor to color 2010-01-30 21:59:20 +00:00
Benoit Bolsee
f7b7d7952d BGE: patch [#20293] Added python sensor attribute: Status. 2010-01-30 18:53:33 +00:00
Benoit Bolsee
cfdd53a4f8 BGE: patch #20399 Python control over adding/removing scenes. 2010-01-30 18:23:13 +00:00
Dalai Felinto
580345394e BGE API_DOC: VideoTexture and PhysicsConstraints templates (need the functions to be filled with their description).
PhysicsConstraints is documented in the Game Kit Book:
http://download.blender.org/documentation/gamekit1/

VideoTexture is documented in the wiki:
http://wiki.blender.org/index.php/Dev:Source/GameEngine/2.49/VideoTexture

I don't think I will have time to fill the documentation. But I hope this commit helps someone interested in helping it.

Therefore volunteers to document those modules are highly welcome !!! (let's give to BGE the documentation it deserves)!

* + added GameLogic.Lave/LoadGlobalDict + some typo fixes
2010-01-10 19:35:42 +00:00
Dalai Felinto
4463597dcd PyDoc updated for Rasterizer setEyeSeparation and setFocalLength + blenderplayer building again.
stubs.c update patch by Mitchel Stokes - Moguri
2010-01-07 05:23:54 +00:00
Benoit Bolsee
d765068fca BGE: add hitUV property to mouse focus sensor to return UV coordinates under mouse pointer. Useful for texture painting. More details in PyDoc. 2009-12-08 08:58:24 +00:00
Benoit Bolsee
0b6873a776 BGE: Add option to return UV coordinates aofthe hit point to KX_GameObject::rayCast(). Details in PyDoc. 2009-12-04 11:27:40 +00:00
Campbell Barton
acf837e3c5 epydocs for bge pre/post render callbacks 2009-11-23 01:10:47 +00:00
Dalai Felinto
573be3e687 BGE: Removing OB prefix from object names - This will break scripts !!!! (also removing AC and ME :: internal changes only)
How it works now:
whenever you have to read/write object names you can do it without the prefix "OB". (it's not hard at all to fix scripts)

How it was before:
It was a mess :)
We had an inconsistent API where sometimes you had to input "OBname" and other "name" directly to assign object as data (usually in actuators).

Justification for the change:
Talking with Campbell we had since a while ago this feeling that this should be changed any time we were going to deprecate the API. So in order to deliver Blender 2.5beta0 with a more close-to-the-final API we decided that today was a good day to implement that.

Remaining issues:
1) VideoTexture uses IM or MA to identify the output material/texture. I haven't touched that, but it does look a bit off. (i.e. I didn't changed any MA, IM naming)
2) I didn't see the code of dynamic mesh. It may need to be edited as well.
2009-11-22 00:01:52 +00:00
Benoit Bolsee
1483fafd13 Merge of itasc branch. Project files, scons and cmake should be working. Makefile updated but not tested. Comes with Eigen2 2.0.6 C++ matrix library. 2009-09-24 21:22:24 +00:00
Campbell Barton
e7abdd7d56 Better unix filesystem integration as documented here
http://wiki.blender.org/index.php/BlenderDev/Blender2.5/Unix_FHS

for scons WITH_BF_FHS enabled an alternative layout eg.
scons WITH_BF_FHS=1 BF_INSTALLDIR="/usr/local"

for CMake just run "make install" after make (CMAKE_INSTALL_PREFIX is used for the base path)

Currently only scripts use both the system and user path correctly, other areas of blender have their own path code inline with lots of ifdefs, needs to be carefully updated.
2009-09-21 03:16:26 +00:00
Campbell Barton
75697c40a0 svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22717:22875 2009-08-29 23:41:09 +00:00
Campbell Barton
9521fa9456 remove gameOb.has_key(key) method from KX_GameObject and ListValue since python 3.x removes has_key from dictionaries.
Instead use __contains__, eg.
 if key in gameOb: ...
 
Mathutils returns from PyMath.cpp were incorrectly using wrapped Mathutils types. Wrapped types should only be used with a callback now.
2009-08-25 13:54:56 +00:00
Campbell Barton
855974dad9 patch from Mitchell Stokes adding dictionary like access to a scene. (like KX_GameObjects have)
val = scene["prop"]
scene["prop"] = newval
if "prop" in scene: ... 
val = scene.get("prop", fallback_val)
2009-08-25 13:43:21 +00:00