Commit Graph

47594 Commits

Author SHA1 Message Date
Benoit Bolsee
221f589f51 BGE bug #18521 fixed: Dupligroups + Bullet Softbodies are broken. 2009-04-21 21:33:03 +00:00
Campbell Barton
e4127da1e3 rna functions are now included in epydocs,
only write the functions into the base rna structs and let epydoc show the inheritance.

examples
http://www.graphicall.org/ftp/ideasman42/html/rna.Mesh-class.html
http://www.graphicall.org/ftp/ideasman42/html/rna.Panel-class.html
http://www.graphicall.org/ftp/ideasman42/html/rna.Header-class.html
http://www.graphicall.org/ftp/ideasman42/html/rna.UILayout-class.html
2009-04-21 20:03:39 +00:00
Guillermo S. Romero
094b3e81f6 Balance comment markers. 2009-04-21 18:41:45 +00:00
Guillermo S. Romero
2db9f14ccd Documentation. 2009-04-21 17:58:28 +00:00
Guillermo S. Romero
41eb029bb9 Old "divide by zero" bug and remove debug printf. 2009-04-21 17:40:39 +00:00
Guillermo S. Romero
c5756a9822 Compile warnings, typos and some clarifications. 2009-04-21 17:37:07 +00:00
Guillermo S. Romero
95b43536f6 Some Makefile changes still laying around. 2009-04-21 17:24:16 +00:00
Nicholas Bishop
a82a6bedc5 Fix for bug #17457. This bug relates to files that have missing multires vertex data.
The fix is, if the file was saved on the highest multires level, then mesh contains a copy of the vertices anyway, and we can just copy it back into multires.

Otherwise, multires is removed from the mesh to avoid a crash.
2009-04-21 16:58:25 +00:00
Ton Roosendaal
6c33cc9bae Bugfix #18550
"Copy constraints" should increase ipo user count.
2009-04-21 15:38:53 +00:00
Brecht Van Lommel
60867ff106 2.5:
* Changed the buttons window contexts to be like the mockups:
  scene, world, object, data, material, texture, particles, physics
* Removed temporary C layout code for buttons and scene.
2009-04-21 15:30:54 +00:00
Ton Roosendaal
d999aef7d8 bugfix #18543
Using feature XRay + Transparent could crash on undo/redo, the
view3d afterdraw was still storing data here whilst it shouldn't...

Reason was that object got added twice actually... but only freed
once. Also caused weird flashy display.
2009-04-21 15:24:04 +00:00
Ton Roosendaal
5d0fb28f74 bugfix #18543
Using feature XRay + Transparent could crash on undo/redo, the
view3d afterdraw was still storing data here whilst it shouldn't...

Reason was that object got added twice actually... but only freed
once. Also caused weird flashy display.

Note to Brecht for merging: skip this one, I'll fix it in 2.5 too.
2009-04-21 15:22:41 +00:00
Campbell Barton
4cf2863a8f SHD_dynamic had gen_utils functions from Mathutils, removing 2009-04-21 13:44:24 +00:00
Daniel Genrich
aff2a11110 Fix for missing include using CMake 2009-04-21 13:34:33 +00:00
Ton Roosendaal
ca78b6ee8b Bugfix #18519
MultiLayer save (F3) crashes when no rendering/layers exist, happens for
opengl preview render. It now survives, saving empty file and prints error.

Better solution for later: render profiles!
2009-04-21 13:30:58 +00:00
Campbell Barton
8b69260f00 hope this lets py2.3 build again 2009-04-21 12:48:49 +00:00
Campbell Barton
aa3c9ad0d8 needed to remove gen_utils functions from Mathutils.c 2009-04-21 12:42:37 +00:00
Benoit Bolsee
d11a5bbef2 BGE: Support mesh modifiers in the game engine.
Realtime modifiers applied on mesh objects will be supported in 
the game engine with the following limitations:

- Only real time modifiers are supported (basically all of them!)
- Virtual modifiers resulting from parenting are not supported: 
  armature, curve, lattice. You can still use these modifiers 
  (armature is really not recommended) but in non parent mode. 
  The BGE has it's own parenting capability for armature.
- Modifiers are computed on the host (using blender modifier
  stack).
- Modifiers are statically evaluated: any possible time dependency
  in the modifiers is not supported (don't know enough about
  modifiers to be more specific).
- Modifiers are reevaluated if the underlying mesh is deformed
  due to shape action or armature action. Beware that this is 
  very CPU intensive; modifiers should really be used for static
  objects only.
- Physics is still based on the original mesh: if you have a 
  mirror modifier, the physic shape will be limited to one half
  of the resulting object. Therefore, the modifiers should 
  preferably be used on graphic objects.
- Scripts have no access to the modified mesh. 
- Modifiers that are based on objects interaction (boolean,..)
  will not be dependent on the objects position in the GE.
  What you see in the 3D view is what you get in the GE regardless
  on the object position, velocity, etc.

Besides that, the feature is compatible with all the BGE features
that affect meshes: armature action, shape action, relace mesh, 
VideoTexture, add object, dupligroup.

Known problems:
- This feature is a bit hacky: the BGE uses the derived mesh draw 
  functions to display the object. This drawing method is a
  bit slow and is not 100% compatible with the BGE. There may
  be some problems in multi-texture mode: the multi-texture
  coordinates are not sent to the GPU. 
  Texface and GLSL on the other hand should be fully supported.
- Culling is still based on the extend of the original mesh. 
  If you have a modifer that extends the size of the mesh, 
  the object may disappear while still in the view frustrum.
- Derived mesh is not shared between replicas.
  The derived mesh is allocated and computed for each object
  with modifiers, regardless if they are static replicas.
- Display list are not created on objects with modifiers.
  
I should be able to fix the above problems before release.
However, the feature is already useful for game development.
Once you are ready to release the game, you can apply the modifiers
to get back display list support and mesh sharing capability.

MSVC, scons, Cmake, makefile updated.

Enjoy
/benoit
2009-04-21 11:01:09 +00:00
Daniel Genrich
e1122a1b67 5th: another compile fix 2009-04-21 10:19:14 +00:00
Campbell Barton
3e7cbd5388 Blender Python API
- Removed the gen_utils.c dependency from Mathutils (since gen_utils wont go into 2.5 but mathutils will), repalced with python functions.
- removed Blender.Mathutils.Point, since it was not documented, the C api never used it, none of our scripts used it (and I never saw a script that used it).
2009-04-21 09:44:29 +00:00
Benoit Bolsee
6c5e18ca98 Fix compilation error in MSVC. 2009-04-21 09:38:27 +00:00
Daniel Genrich
fc7a561de1 4th: another file corrupted 2009-04-21 09:31:07 +00:00
Benoit Bolsee
106b5a435c BGE: show profile in millisecond in addition to percentage. 2009-04-21 09:20:47 +00:00
Daniel Genrich
cf9886b0d0 2nd try to merge sim_physics with trunk rev 19825
Please check if volumetrics are yet working
2009-04-21 08:49:06 +00:00
Campbell Barton
2d054e00b0 Blender Python API
use getseter's for quat and euler types attributes, python3 compatible module initialization for Mathutils and BGL.
2009-04-21 07:16:29 +00:00
Campbell Barton
70dae5f493 [#18557] incorrect alpha IPO behavior in game engine
from Louis-Dominique Dubeau (zenoparadox)
report contained fix, ancient bug from rev2.
2009-04-21 01:59:14 +00:00
Campbell Barton
720f7a8b69 use PyList_SET_ITEM instead of PyList_SetItem,
PyList_SetItem does error checking and decref's existing values, PyList_SET_ITEM is a macro for direct assignment, only for use on new lists.
2009-04-20 23:27:53 +00:00
Campbell Barton
217bbb7800 BGE Python API
Separate getting a normal attribute and getting __dict__, was having to do too a check for __dict__ on each class (multiple times per getattro call from python) when its not used that often.
2009-04-20 23:17:52 +00:00
Benoit Bolsee
2d0d06f642 BGE VideoTexture: fix bug with VideoTexture.materialID() since recent commit. 2009-04-20 21:20:33 +00:00
Daniel Genrich
6afaab654d Bugfix for [#18554] Time + Scale Node Crash 2009-04-20 18:31:48 +00:00
Ton Roosendaal
449e9a454d Bugfix 18558
In OSX, using spin/extrude etc. buttons, with more than 1 3d window open,
should turn cursor in a Question Mark to indicate you have to tell which
window to use (yes weak, but that's 2.4x!). OSX didn't support that type
of cursor, so no hint happened. Now uses the 'hand' icon for osx... no
nicer one is there afaik.
2009-04-20 18:23:46 +00:00
Martin Poirier
141a229a79 Merge ICON_SNAP_PEEL_OBJECT and corresponding icon in blenderbuttons (need new icon though) 2009-04-20 16:31:46 +00:00
Brecht Van Lommel
874c29cea8 2.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r19323:HEAD
Notes:
* blenderbuttons and ICON_SNAP_PEEL_OBJECT were not merged.
2009-04-20 15:06:46 +00:00
Daniel Genrich
d76a6f5231 Booleans: Fix for "no faces" error, reported by alxarch, thanks! 2009-04-20 13:18:54 +00:00
Ton Roosendaal
0c9de2396a 2.5
Node title and socket labels are now following Style/Font as well, and
scale correctly.
2009-04-20 12:03:55 +00:00
Ton Roosendaal
bc06159431 2.5
Fixes:

- HSV picker didn't work. Old option "No Hilite" for buttons made it not
  being checked for input anymore. Needs to be on attention list!

- Node editor wasn't drawing buttons correctly. Two things to keep track
  off:
  - Use wmLoadIdentity(), not glLoadIdentity()
  - I've added a wmPushMatrix() and wmPopMatrix() version for correct
    wm-compatible push/pop. Only one level for now.
2009-04-20 11:39:18 +00:00
Joshua Leung
4b45c57bb6 Drivers - Rotational Difference
Restored the code to get this working. I haven't tested this to verify it, but it 'should' work...


Also, deleted old gpencil.c file in editors, since it was causing compiling errors.
2009-04-20 10:45:25 +00:00
Ton Roosendaal
f2f95caf30 Forgot to add the new gpencil files! :) 2009-04-20 10:20:18 +00:00
Ton Roosendaal
74b12d1d6d 2.5
Patch from Joshua, converting Grease Pencil to 2.5.
All GP data now is an ID block, allowing re-use, link and append.
For better contextual control within 2.5, these GP ID's will get
linked to actual data, like NodeTrees, Scenes, Images or Objects.
That will ensure Undo works, and opens up exciting new use cases
as well. :)

Patch note: on reading files, GPencils linked from editors will
get moved to the main library, using standard naming (indicating
where it was used), and with "Fake User" set. That way the user
can manually relink the pencils where appropriate.
We can check on just linking GP to some default, like 3d window
pencils to Scene? Nice to experiment with.

Notes for Joshua:
- for reading old GPencil, it has to use old code as well, meaning
  to tread data as "indirect data, within another ID".
- Saving ID data means the chunk in file BHead needs the ID_GD code,
  and not "DATA", which indicates 'indirect data'. That's the file
  format spec.
- I've added do_versions_gpencil_2_50(), feel free to further tweak
  things here, like linking things to scene or so.
- Formerly GPencil saved 2.50 files won't convert gpencil
2009-04-20 10:13:55 +00:00
Joshua Leung
332e001989 Drivers: "Scripted Expression" drivers (i.e. PyDrivers) work again
Now it is possible to write a Python Expression using the variable names for driver targets (see mockup from initial commit) to substitute the appropriate values into the expression.

In the __global__ namespace for PyDriver evaluation, the following modules are available:
* __builtins__ - i.e. the builtin Python functions
* bpy - new Python API
* math or m - math module

For example:
Consider a driver with three targets, named: A, B, C
Now, you could write an expression like:
   C if A < 5 else B
or even:
   2*C if A < 5 or A > 20 else m.PI*B

Of course, you don't have to have three targets, the above was just an example.

TODO:
* Bring back way to load pydrivers.py
* Blender.Noise equivalent would be nice to have

P.S.  I hope I haven't made any terrible Python API coding errors here (i.e. mem leaks, etc.)
2009-04-20 09:17:43 +00:00
Campbell Barton
dee32d0b3f BGE Python API
- initialize pythons sys.argv in the blenderplayer
- ignore all arguments after a single " - " in the blenderplayer (like in blender), so args can be passed to the game.
- add a utility function PyOrientationTo() - to take a Py euler, quat or 3x3 matrix and convert into a C++ MT_Matrix3x3.
- add utility function ConvertPythonToMesh to get a RAS_MeshObject from a KX_MeshProxy or a name.
- Added error prefix arguments to ConvertPythonToGameObject, ConvertPythonToMesh and PyOrientationTo so the error messages can include what function they came from.
- deprecated brick.getOwner() for the "owner" attribute.
2009-04-20 09:13:59 +00:00
Michael Fox
6482206078 Added some missing rna entries for scene, and added them to the scene buttons with some missing elements aswell 2009-04-20 04:58:22 +00:00
Joshua Leung
828581fa07 Drivers: Editing ops in the Outliner
In much the same way as Keying Sets are defined in the Outliner, you can now select items in the Datablocks view of the Outliner, and use the D/Alt-D hotkeys to Add/Remove drivers (repectively). This is useful for settings which don't have buttons yet (in the buttons window).
2009-04-20 03:52:13 +00:00
Joshua Leung
387aad7275 A bit more F-Modifier wrapping... 2009-04-20 03:29:45 +00:00
Daniel Genrich
8a0a557294 Hopefully a working merge with trunk (could be one error left in raytrace.c - will check afterwards)
Merging 18706 - 19804
2009-04-20 00:19:16 +00:00
Campbell Barton
9078ce5da2 Scons epydos changed options
- no source code since this is only useful if the epydocs contain code, ours are only docstrings.
- set inheritance to included so you dont have to search up the classes to find available functions.
- SConstruct, isolate the exception for importing epydoc.
- Added a print to the SConscript files otherwise it looks like nothings happening.
2009-04-19 22:02:48 +00:00
Nathan Letwory
fcdbbee208 SCons / epydoc support
* properly detect if epydoc is installed.
  patch by Brandano
2009-04-19 21:26:29 +00:00
Campbell Barton
f5fc4ebdd8 BGE Python API
- More verbose error messages.
- BL_Shader wasnt setting error messages on some errors
- FilterNormal depth attribute was checking for float which is bad because scripts often expect ints assigned to float attributes.
- Added a check to PyVecTo for a tuple rather then always using a generic python sequence. On my system this is over 2x faster with an optmized build.
2009-04-19 21:01:12 +00:00
Joseph Eagar
5146540095 changed some {} to {0}, these were causing errors on msvc. also got rid of some spurious prototypes I forgot to get rid off. 2009-04-19 20:09:31 +00:00
Daniel Genrich
7144838606 Compile fixed for Win64.
Please check if that also compiles on win32.
2009-04-19 19:31:32 +00:00