Blender Git Commits

Blender Git "master" branch commits.

Page: 4623 / 5574

August 2, 2009, 23:02 (GMT)
== Sequencer ==

This brings back sequencer rendering, moving do_render_seq() into the
pipeline where it belongs.

Things to fix: SCENE-strip rendering and memory cleanup for
SCENE-strips.

Otherwise: enjoy :)

Revision e05474d by Joshua Leung
August 2, 2009, 22:56 (GMT)
Graph Editor Bugfixes:

* Tools such as set handle type, etc. were not being called correctly from the menus. There were missing operator-context calls to make sure that the invoke methods would get skipped.

* Hack for loading old files - buttons region for Graph Editor now gets added. Dunno why this didn't work automatically as for NLA despite the two having the same code.
August 2, 2009, 22:39 (GMT)
Fixed the handling of constructor arguments in the following Python
types: Interface0D, SVertex, ViewVertex, StrokeVertex, NonTVertex,
and TVertex.
Revision 05a9774 by Matt Ebb
August 2, 2009, 21:46 (GMT)
Small tweaks to scene buttons (checkboxes in the right column)
August 2, 2009, 19:40 (GMT)
Smoke: 2 preview fixes
a) take first position lamp into accountn for smoke ligthning (still no realtime shading when you move the lamp - you have to simulate another frame for now)
b) fix front/back "looking throurgh" issue by reordering the billboards
Revision dc75023 by Janne Karhu
August 2, 2009, 19:39 (GMT)
Softbody now uses the new pointcache code.

Note: Rna access to softbody point cache is through softbody modifier although the point cache is in softbody settings. This is to make it similar to cloth.

Bugfix: Softbody rna was trying to get "ob->soft->softflag" instead of the correct "ob->softflag".
August 2, 2009, 19:36 (GMT)
SWIG/directors dependency removal (cont'd)

Removed all castToSomething() methods from Interface0D's subclasses.
These methods are useless, because introspection-based automatic type
conversion takes place whenever it is applicable.

If you need to rewrite old style modules that rely on the cast methods,
apply the following rewriting rules:

- SVertex.castToSVertex()
- TVertex.castToViewVertex()
- TVertex.castToTVertex()
- NonTVertex.castToViewVertex()
- NonTVertex.castToNonTVertex()

These 5 methods return an object itself, so just removing a method
call will suffice. If you need to handle objects in a different way
depending on their types, then you can use Python's type checking
idioms such as "type(obj) is T" and "isinstance(obj, T)". Example:

[Original]
v = it.getObject()
# try to convert v into a TVertex object
vertex = v.castToTVertex()
if vertex != None:
... # do something on the TVertex object
# try to convert v into a NonTVertex object
vertex = v.castToNonTVertex()
if vertex != None:
... # do something on the NonTVertex object

[Rewritten]
vertex = it.getObject()
if type(vertex) is TVertex:
... # do something on the TVertex object
elif type(vertex) is NonTVertex:
... # do something on the NonTVertex object

- SVertex.castToViewVertex()
- SVertex.castToTVertex()
- SVertex.castToNonTVertex()

Use SVertex.viewvertex() instead. You don't need to care about
which cast method is appropriate. SVertex.viewvertex() does, if
necessary, introspection-based automatic type conversion for you.

- NonTVertex.castToSVertex()

Use NonTVertex.svertex() instead.

- CurvePoint.castToSVertex()

Let cp be a CurvePoint object, then this method can be expressed as
follows:

if cp.t2d() == 0.0:
return cp.A() # returns an SVertex
elif cp.t2d() == 1.0:
return cp.B() # returns an SVertex
return None

- CurvePoint.castToViewVertex()
- CurvePoint.castToTVertex()
- CurvePoint.castToNonVertex()

Similarly, these 3 methods can be expressed as follows:

if cp.t2d() == 0.0:
return cp.A().viewvertex()
elif cp.t2d() == 1.0:
return cp.B().viewvertex()
return None
August 2, 2009, 18:32 (GMT)
Smoke: (hopefully) fix collision high-res smoke disappearance
August 2, 2009, 18:25 (GMT)
Fixed the argument parsing in CurvePoint.__init__().
August 2, 2009, 17:38 (GMT)
* Fixed __init__() method so as to corecttly handle arguments.

* Fixed refcount issues in diffuse(), specular(), ambient() and
emission() methods. Also changed the type of their returned values
from list to tuple.
August 2, 2009, 16:44 (GMT)
2.5 3DView:

* Removed redundant color picker panels from the Properties Panel.
* Deleted some old C Buttons Code. (Background Image, Weight Paint, View and the Color pickers.)
* Added missing Particle Mode Buttons into the Toolbar. They need a check if the system is editable or not.
* Pose Mode Panels in Toolbar were not working due to wrong context. Fixed.
August 2, 2009, 16:23 (GMT)
SWIG/directors dependency removal (cont'd)

* Added to python/BPy_Convert.{cpp,h} 4 utility converters below for
better introspection-based automatic type conversion.

PyObject * Any_BPy_Interface0D_from_Interface0D( Interface0D& if0D );
PyObject * Any_BPy_Interface1D_from_Interface1D( Interface1D& if1D );
PyObject * Any_BPy_FEdge_from_FEdge( FEdge& fe );
PyObject * Any_BPy_ViewVertex_from_ViewVertex( ViewVertex& vv );

There are 4 corresponding converters without the "Any_" prefix. All
calls of them in the code base were replaced with these new converters
so that the introspection-based automatic conversion would take place
universally.

* python/BPy_Convert.{cpp,h}: Those C++ to Python converters having
had a "_ptr" suffix were renamed to a name without the suffix, and
their arguments were changed so as to take a reference (e.g.,
ViewVertex&) instead of a pointer (e.g., ViewVertex *). The changed
converters and their new function prototypes are listed below. These
converters now return a Python wrapper object that retains the passed
reference, instead of retaining a newly created C++ object by the
converters.

// Interface0D converters
PyObject * BPy_Interface0D_from_Interface0D( Interface0D& if0D );
PyObject * BPy_CurvePoint_from_CurvePoint( CurvePoint& cp );
PyObject * BPy_StrokeVertex_from_StrokeVertex( StrokeVertex& sv );
PyObject * BPy_SVertex_from_SVertex( SVertex& sv );
PyObject * BPy_ViewVertex_from_ViewVertex( ViewVertex& vv );
PyObject * BPy_TVertex_from_TVertex( TVertex& tv );
PyObject * BPy_NonTVertex_from_NonTVertex( NonTVertex& ntv );
// Interface1D converters
PyObject * BPy_Interface1D_from_Interface1D( Interface1D& if1D );
PyObject * BPy_Chain_from_Chain( Chain& c );
PyObject * BPy_FEdge_from_FEdge( FEdge& fe );
PyObject * BPy_FEdgeSharp_from_FEdgeSharp( FEdgeSharp& fes );
PyObject * BPy_FEdgeSmooth_from_FEdgeSmooth( FEdgeSmooth& fes );
PyObject * BPy_Stroke_from_Stroke( Stroke& s );
PyObject * BPy_ViewEdge_from_ViewEdge( ViewEdge& ve );
PyObject * BPy_directedViewEdge_from_directedViewEdge( ViewVertex::directedViewEdge& dve );
// some other converters
PyObject * BPy_ViewShape_from_ViewShape( ViewShape& vs );
PyObject * BPy_SShape_from_SShape( SShape& ss );
PyObject * BPy_FrsMaterial_from_FrsMaterial( FrsMaterial& m );
PyObject * BPy_StrokeAttribute_from_StrokeAttribute( StrokeAttribute& sa );

* Added a "borrowed" flag to the definitions of Python types being
used to wrap C++ components of Freestyle's internal data structures.
The flag indicates whether or not a Python wrapper object has a
reference to a C++ object that comprises the internal data structures.
The deallocation routines of the Python types check this flag and
release a wrapped C++ object only when it is not part of the internal
data structures. The following files were modified:

python/BPy_FrsMaterial.{cpp,h}
python/BPy_Interface0D.{cpp,h}
python/BPy_Interface1D.{cpp,h}
python/BPy_SShape.{cpp,h}
python/BPy_StrokeAttribute.{cpp,h}
python/BPy_ViewShape.{cpp,h}
python/Interface0D/BPy_CurvePoint.cpp
python/Interface0D/BPy_SVertex.cpp
python/Interface0D/BPy_ViewVertex.cpp
python/Interface0D/CurvePoint/BPy_StrokeVertex.cpp
python/Interface0D/ViewVertex/BPy_NonTVertex.cpp
python/Interface0D/ViewVertex/BPy_TVertex.cpp
python/Interface1D/BPy_FEdge.cpp
python/Interface1D/BPy_FrsCurve.cpp
python/Interface1D/BPy_Stroke.cpp
python/Interface1D/BPy_ViewEdge.cpp
python/Interface1D/Curve/BPy_Chain.cpp
python/Interface1D/FEdge/BPy_FEdgeSharp.cpp
python/Interface1D/FEdge/BPy_FEdgeSmooth.cpp

* view_map/Interface[01]D.h, python/BPy_Interface[01]D.cpp: Removed
from the Interface0D and Interface1D C++ classes a back pointer to a
Python wrapper object and all "director" calls. These classes (and
their subclasses) are used to build Freestyle's main data structures
(such as a view map and strokes) and their class hierarchy is static.
Python wrappers of these C++ classes are only used to access the data
structures from the Python layer, and not intended to extend the data
structures by subclassing the Python wrappers. Without the necessity
of subclassing in the Python layer, the back pointer to a wrapping
Python object and "director" calls would be useless (actually they
were not used at all), so they were all removed.

* python/Director.{cpp,h}: Removed the definitions of directors that
were no longer used.

* stroke/Stroke.{cpp,h}: Removed an (unused) back pointer to a Python
wrapper object.

* python/BPy_ViewMap.cpp: Fixed a possible null pointer reference.

* python/Interface1D/BPy_FEdge.cpp: Fixed parameter checking in
FEdge___init__().
August 2, 2009, 15:57 (GMT)
Smoke: fixing 8MB memleak
Revision 81146e4 by Joshua Leung
August 2, 2009, 13:15 (GMT)
NLA Tweaks:

* "Pushing down" the action to make a new strip will now make the new strip the 'active' one.

* 'Active Action' field in Animation Data panel is now editable as long as we aren't in "tweakmode"
Revision 1aa3885 by Joshua Leung
August 2, 2009, 12:52 (GMT)
2.5 - Animation/RNA Bugfixes

* Settings for Bones can now be animated properly from UI
* Settings for constraints on bones and objects can now be keyframed properly
* Added missing 'subtarget' property wrapping for StretchTo constraint.
August 2, 2009, 12:11 (GMT)
changed to STL sort
August 2, 2009, 11:36 (GMT)
Mistakingly removed check for old Python in material buttons in previous commit.

Added it back, plus some smaller layout tweaks.
August 2, 2009, 11:32 (GMT)
Another quick-fix for background mode
August 2, 2009, 11:11 (GMT)
Revision 8aae02b by Joshua Leung
August 2, 2009, 11:05 (GMT)
2.5 - Animation Playback Tweaks

* Added some optimisations to avoid having to try evaluating some data that won't have any effect.

* Converted playback buttons in timeline header to use operators too
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021