Revision eff8e10 by Peter Schlaile 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. |
Revision e2eb4d5 by Tamito Kajiyama August 2, 2009, 22:39 (GMT) |
Fixed the handling of constructor arguments in the following Python types: Interface0D, SVertex, ViewVertex, StrokeVertex, NonTVertex, and TVertex. |
August 2, 2009, 21:46 (GMT) |
Small tweaks to scene buttons (checkboxes in the right column) |
Revision ee11ca6 by Daniel Genrich 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". |
Revision 74027ea by Tamito Kajiyama 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 |
Revision 7b123ff by Daniel Genrich August 2, 2009, 18:32 (GMT) |
Smoke: (hopefully) fix collision high-res smoke disappearance |
Revision 0ea01da by Tamito Kajiyama August 2, 2009, 18:25 (GMT) |
Fixed the argument parsing in CurvePoint.__init__(). |
Revision cc19c8e by Tamito Kajiyama 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. |
Revision 08d4b96 by Thomas Dinges 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. |
Revision acf9799 by Tamito Kajiyama 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__(). |
Revision 900c61f by Daniel Genrich 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. |
Revision 84d8654 by Andre Susano Pinto August 2, 2009, 12:11 (GMT) |
changed to STL sort |
Revision c5f0be6 by William Reynish 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. |
Revision bee82a3 by Andre Susano Pinto August 2, 2009, 11:32 (GMT) |
Another quick-fix for background mode |
Revision f6f2d21 by Andre Susano Pinto 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 |
|