Commit Graph

47594 Commits

Author SHA1 Message Date
1557736756 OBJ exporter working (Python 3.0), but needs testing and fixing.
Current issues:
- NURBS - needs API additions
- "all scenes" export - cannot switch scene in bpy
- normal calculation, disabled
- duplis - need testing, only dupliverts tested
- matrix problem
- UI, 18 options currently don't fit into filesel panel, will do manual lay out once it's available
- probably others...

BPY:
- made operator "execute" method required to avoid crash
- added bpy.sys module which replicates old "sys" module

API:
- replaced create_*_mesh with a single create_mesh accepting type parameter
- added Mesh.create_copy to create a copy of a mesh with 0 users

Ran `dos2unix` on source/blender/python/SConscript
2009-06-28 13:29:03 +00:00
1b5851b4f9 PyNumberMethods needed ifdefs for python3.x and some other corrections. 2009-06-28 13:27:06 +00:00
Chingiz Dyussenov
d7fa3d6c80 Added per-face materials exporting. If mesh has no materials it won't be
exported.
2009-06-28 13:20:37 +00:00
7d88981a24 2.5
Menu usage: enabled arrow-key based browsing, especially for open and
close sublevels. Only thing missing is to prevent sublevel to open
on creating menu (like SHIFT+A now), this is design conflict in code.
(It sends fake mouse move events causing it)

Implementation note; the 'auto open sublevel' feature gets triggered
with new state var, that checks if mouse was used or not.

Also: on render in editmode, editmode result gets stored, as usual for 2.4x.
2009-06-28 12:30:50 +00:00
8bf355533e Zeroing listbase result for context data collection get when no data is found.
Caused crash for uninitialized pointers when getting collection data for editors not supporting that member, e.g. "deselect all" operator in non-3dview editors.
2009-06-28 11:37:45 +00:00
6b9f3b5f5c BGE Python API
Remove the last of the odd C++/python wrapper code from http://www.python.org/doc/PyCPP.html (~1998)

* Use python subclasses rather then having fake subclassing through get/set attributes calling parent types.
* PyObject getset arrays are created while initializing the types, converted from our own attribute arrays. This way python deals with subclasses and we dont have to define getattro or setattro functions for each type.
* GameObjects and Scenes no longer have attribute access to properties. only dictionary style access - ob['prop']
* remove each class's get/set/dir functions.
* remove isA() methods, can use PyObject_TypeCheck() in C and issubclass() in python.
* remove Parents[] array for each C++ class, was only used for isA() and wasnt correct in quite a few cases.
* remove PyTypeObject that was being passed as the last argument to each class (the parent classes too).

TODO -
* Light and VertexProxy need to be converted to using attributes.
* memory for getset arrays is never freed, not that bad since its will only allocates once.
2009-06-28 11:22:26 +00:00
6998a0f47b 2.5
Bugfixes:

- Preview Icon for render result crashed, there was still need for a scene
  pointer to be passed on.

- Added quick fix for preventing shaded drawmode to call render while
  rendering is in progress. It crashes badly.
  Rendering while UI is alive is still in probation, most UI stuff will
  probably get blocked, with exception from inspecting buttons and using
  the image window.
2009-06-28 09:35:37 +00:00
aa4ed13e4a NLA SoC: NLA Mapping Cleanup
While trying to fix the mapping conversions for repeat, I came across some limitations with the current (soon to be previous) mapping methods. 

Now the mapping conversions should work nicely for all places that use them.
2009-06-28 07:32:00 +00:00
500507ddb1 NLA SoC: Merge from 2.5 - 21179 to 21209 2009-06-28 03:26:10 +00:00
61e30f0f00 NLA SoC: Renamed NLA-Editor operators to be more in line with those in other editors 2009-06-28 03:13:01 +00:00
7271f86be5 removed un-needed hack, something weired was going on when debugging that made the pointers to these functions change after initialization. 2009-06-28 02:47:49 +00:00
388e59a768 BGE Fix for no redrawing.
Was caused by un-initialized engine ticrate, do_versions was working on 2.4x but isnt in 2.5 so just add a zero check when getting from the world.
2009-06-28 02:37:07 +00:00
aa933d2c9f BGE Redraw problem:
at the moment only files from blender 2.4x will display in 2.5x, compared area and window structs in both cases and dont see any differences.

This doesnt fix the problem but corrects a few things related to window drawing with the BGE,
also adds a hack because I noticed the window and area pointers in the KX_BlenderCanvas were offset after initialized, maybe need to use <static cast> ?
2009-06-27 23:54:20 +00:00
67073db49c 2.5/Sculpt:
Improved sculpting in perspective mode; starting a stroke on the background would sometimes result in the brush having a huge effect on the mesh. Fixed by waiting to start the stroke until the mouse moves over the model.

The fix is not quite perfect, because detection of the edge of the model is based on the depth buffer, so other things that change the depth buffer, like the grid and axis lines in the 3d view, can throw off the calculation.
2009-06-27 21:14:04 +00:00
b097f7250d 2.5/Sculpt:
Removed a bunch of old code that was #ifdef'd out. Mostly relates to partial visibility and partial redraw. Both of these are important features, but need better design updated for 2.5.

Also removed the old (huge/ugly!) sculpt() function that is now handled by the stroke operator code.
2009-06-27 17:10:19 +00:00
c79e57dba8 2.5
Two bugfixes:
- When making 2d windows small (zero sized) the view2d data could get
  corrupted with NaN values. Clipped values correctly to 1.
- Search menu (ctrl+alt+f) had wrong color for selected text in text
  button
2009-06-27 16:35:42 +00:00
7b547f7ce7 Particle ID block controls:
* Adding/removing particle systems to an object.
* Changing of particle settings.
* Currently showing an object's particle systems in a list (like materials).
2009-06-27 15:41:47 +00:00
912c2f440b Pointcache refresh part 2
* Based on what happens during simulation the cache is marked (also in cache panel, this could possibly be extended to 3d view as well) as:
	- exact (not marked)
	- outdated (simulation is not done completely with current settings)
	- non-exact (frames were skipped during simulation)

* The parameter "cache step" effects the number of frames between saved cache frames.
	- This can save a lot of memory (or disk space) if absolutely frame accurate simulation is not required.
	- Speeds up the "quick caching" very much.
	- Frames between cached frames are interpolated from the cached frames.
	- Current default value of 10 frames works nicely with up/down-arrows (skip 10 frames forwards/backwards on timeline), but can be changed if wanted.

* The caching can work in normal or "quick" mode:
	[Normal cache]
	- Basic: Calculate what even happens (settings change, big frame steps etc.) and cache results, if possible try to use "cache step" when saving cache frames.
	- Becomes non-exact: After larger than 1 frame steps.
	- Becomes outdated: After any change effecting the simulation other than frame steps.
	- Pros/cons: Freedom of doing anything and playing with particles, but exact results have to calculated from the beginning.

	[Quick cache]
	- Basic: Calculate simulation up to current frame automatically on changes with cache step sized jumps in simulation. With multiple "quick cached" simulations the smallest cache step is used.
	- Becomes non-exact: Always from frame 1 (unless cache step = 1).
	- Becomes outdated: Never.
	- Pros/cons: Not very accurate, but super fast!
	- Todo: Transform of any animated (non-autokeyed) object is locked! Probably needs some tinkering with anim sys overrides.

* The simulation can be run forwards or backwards even if it's cache is outdated or non-exact, the following rules apply in these situations:
	- step forwards (to unknown) -> simulate from last exact frame, store result
	- step backwards (to known) -> result is interpolated from existing frames, store result, clear cache forwards if current frame is after last exact frame

* "Calculate to current frame" runs the simulation from start to current frame with a frame steps of 1.
	- Baking does the same, but runs the simulation all the way to the end of simulation.
	- Rendering does this automatically if the simulation is outdated of non-exact, so all rendered simulations will always be updated and exact.
	
* Every cache panel also holds buttons to "Bake all dynamics", "Free all dynamics" and "Update all dynamics to current frame".

* Cloth simulation supports the new cache too.
2009-06-27 15:28:58 +00:00
9becf3c310 2.5
Test commit; toolbar has 'add operator' menu in mesh editmode.
Nothing stored, freed here...

Also: removed reading .B.blend, since a much better default has
been compiled in now, prevents confusing testers who run 2.5
for the first time. :) Of course .B25.blend still works.
2009-06-27 15:21:37 +00:00
c9513df561 UI:
* Fix issue with icon not being left-aligned in text field.
* Put modifier tab after data tab in buttons header.
2009-06-27 14:35:24 +00:00
1d135cb955 RNA: move softbody flags from Object to SoftBodySettings. 2009-06-27 14:02:21 +00:00
ce15921a68 2.5 RNA:
* Added more softbody properties (collision, solver) and some flags in object RNA.
2009-06-27 13:20:19 +00:00
5d6801a472 2.5
Mesh editmode fix: Add new primitive often was on wrong location.
Viva Vazquez testing! :)
2009-06-27 13:10:18 +00:00
bc0cd9607e NLA SoC: Move Strips Up/Down Operators
These operators may be temporary only, depending on if a workable solution via transform is found.
* PageUp moves strips into the track above if there's space
* PageDown moves strips into the track below if there's space

* Also fixed a button-alignment bug in the DopeSheet header
2009-06-27 13:00:22 +00:00
Chingiz Dyussenov
14fd54554c Added export material properties. The following shader types are
supported: phong and blinn all others are exported as <lambert>. Here is 
the list of supported shader options: emission, ambient, diffuse, 
specular, shininess, reflective, reflectivity, transparency, index of 
refraction. 
Turned off texture exporting - needs fixing.
2009-06-27 12:58:34 +00:00
d55b460419 2.5
Bugreport; on dragging area edges, the mouse-release event was 
swallowed by the panel animation handler. Thanks Pablo Vazquez 
for report. :)
2009-06-27 12:41:28 +00:00
d3557fc487 NLA SoC: Recoded the strip<->global time conversion code
* Strip evaluation now takes into account repeats
* Increasing the number of repeats lengthens the strip, while decreasing the number of repeats does the opposite.

TODO:
- inverse correction doesn't take into account repeats != 1, so tweaking strips with repeats is currently not recommended!
2009-06-27 12:35:11 +00:00
5d6ef223fb 2.5 RNA:
* Started Wrapping softbody RNA.
2009-06-27 11:57:50 +00:00
b8f6221c8b Object rotation read/write.
The new QuatToAxisAngle function could go to BLI_arithb.h.
2009-06-27 09:29:30 +00:00
f508319fc8 NLA SoC: Apply-Scale Operator now recalculates action length after scale is applied 2009-06-27 04:56:20 +00:00
bbf793472e NLA SoC: Merge from 2.5 - 21146 to 21178 2009-06-27 03:19:55 +00:00
222fe6b1a5 UI
* Search popup + autocomplete for bones, vertex groups, etc. This
  is done with layout.item_pointerR, specifying an RNA collection to
  take the items from. Used by constraints and modifiers.

* Some tests with the List template, ignore those for now..
2009-06-27 01:15:31 +00:00
d839a9ae9c RNA
* Added support for passing collections to/from RNA functions,
  this is done using a ListBase of CollectionPointerLink, which
  is a standard ListBase link + PointerRNA.

* Added editable active uv/vcol layer to Mesh.
* Armature.bones now includes all bones, not only the ones without
  parents.
* Modifier UV layer fields now are allowed to be empty, previously
  this would set the name during modifier evaluation if there was
  none.
2009-06-27 01:10:39 +00:00
13d18c5f77 NLA SoC: Theme colours in old defaults files for NLA now get replaced with the nice new colours 2009-06-27 00:40:25 +00:00
b1a5b08b1a == Sequencer ==
Small fix by jms: rint() isn't available on win32... 
(hmm, rint() is conforming to C99, that is _really_ strange...)
2009-06-26 19:40:28 +00:00
524b861437 2.5
Part one (of probably many :) of Operator review/validation.
Nothing final nor defined, it's reseach :)

- Added tool buttons in "Toolbar" (Tkey). Just four examples
  for objectmode, and six for mesh editmode.

(Review in progress is operator internal state vs context, what
do redo exactly, undo vs redo syncing, when op->invoke or not,
etc. This has to be pinned down exactly and frozen asap)

- On undo, clear redo-operator-stack for now (won't work)
- Added call to better detect active/current view3d region.
  ED_view3d_context_rv3d(C)
- Fixed some operators that missed correct redo (add-prim etc).

Later more fun!
2009-06-26 15:48:09 +00:00
efcdd16b07 == Sequencer ==
Additional speed control fixes:
frame blending can now be done on more than two
frames, enabling really fine grained motion blur
if you speed up a sequence with high factors (bigger
than two).

Next step: add morphing support using motion 
estimation.
2009-06-26 15:09:39 +00:00
83a5a585e4 Merge from 2.5 r21112 through r21160 2009-06-26 13:00:23 +00:00
07e9c4ef2b 2.5
Makes toolbar region in 3d editor work correctly overlapping, also
when area is subdivided in 4-split, and/or with properties region.
2009-06-26 12:55:46 +00:00
acb590e4b0 * OBJ exporter almost converted
* added MeshEdge.loose property
* changed mask used in Object.create_*_mesh to CD_MASK_MESH.
2009-06-26 12:33:07 +00:00
Chingiz Dyussenov
2f3b3e5f33 Import:
* Objects are created and linked to meshes. 
* Since I don't know how to import per-face normals, they are generated automatically by mesh_calc_normals.
* Objects are imported with transformations but without rotation yet.
2009-06-26 11:25:19 +00:00
6f87d03b3c == Sequencer ==
This fixes several issues with the Speed Control Effect:
* IPO curve-deletion resulted in non-working effect
* easy retiming only allowed enlarging of strips,
  now shrinking is also possible (easy retiming:
  use the right display handle of input strip and
  shrink or enlarge, will make the speed of the
  strip exactly fit the effect strip's length)
* frames after end-of-display of input strips can
  now be accessed (which is necessary for fix #2)
  
=> just use easy retiming from now on, it's fun :)
2009-06-26 07:32:24 +00:00
165593931f *another blackdots fixed - had forgoted to enable skip-neighbour faces on ao. 2009-06-26 02:11:08 +00:00
4b914c7f75 Made Mathutils use radians rather then degrees. defining USE_MATHUTILS_DEG for testing existing scripts.
Added conversion for BGE Quaternion WXYZ (Blender/C) -> XYZW (Moto C++).
BGE Python API now uses WXYZ following mathutils (break script warning).
2009-06-25 20:47:41 +00:00
18e7ec8463 - added MeshFace.normal property
- continuing OBJ exporter conversion
2009-06-25 18:04:32 +00:00
ab183755da Quick fix to allow reading of <polylist> and <polygons>.
Treating <polylist> as <polygons> in OpenCollada seems intentional, not a bug.
2009-06-25 16:25:07 +00:00
47ca543b32 2.5
Rendering preview icons is back!

Note for Andrea: the render code has been decoupled from
drawing, it needs Scene context to be able to run...

At the moment only the search menu calls the new render
code (which is the ID browse menu default anyway)
2009-06-25 15:41:27 +00:00
e2e139c0ba Added Mesh.active_uv_layer read-only property. 2009-06-25 13:33:21 +00:00
8cda8abefe Bugfix, testing venom's lab .blends
Using LightGroups override for material doesn't work for preview
renders. Code didn't correctly return correct light listbase then,
crashing Blender on preview render.
2009-06-25 12:32:55 +00:00
6510da4ce2 NLA SoC: Fix transforms for transition strips. 2009-06-25 12:30:49 +00:00