one of them is in edit mode. This doesn't give correct results for modifiers
though, there was already a check to disable this when are shape keys, so
now it is also disabled if either of the meshes has modifiers.
means you can easily undo what the script did, and keeps the undo stack
up to date. Maybe sometimes it's not necessary, but I think it's
reasonable to do this always.
- re-arranged UI in a way that gave far too much vert scrolling.
- was added all over for simple things like making text="", layout engine should handle this.
- Ton and Brecht are ok with removing this now. Ton would like to work on the layout engine to make it better support these cases.
Fixes [#23152] Area light with noshadow is affected by rayshadow sampling setup (Kino Bug Reporting Sprint)
https://projects.blender.org/tracker/index.php?func=detail&aid=23152&group_id=9&atid=498
This moves the samples field so that it is visible in area lamps when noshadow is clicked, because acording to Brecht: "area lights also use the
samples for sampling the form factor, but they are in the shadow panel, probably for area lights that button should be moved"
Also modified the sampling buttons so that only those depending on the sampling method are below the sampling method selector, while the general
ones come first so it's immediate to see which ones are depending on the sampling method.
Also, formatted so that options for constant jitter appear below that button, so it's faster to setup.
Same for QMC which has the threshold field just below the QMC selector, and not wide as the column.
This still uses "if wide_ui else", in IRC there has been discussion about removing it but this will be done but who is in charge of it at due
time.
more of a request then a bug but shows up a strange limitation with curve deform modifier,
The mesh bounding box would set the deform axis start/end to map the deformation of the curve to. This means it ignored offset in the object location and object data location (you could use a dummy vertex to trick it).
Old files wont change, added an option (next to stretch), called 'Bounds Clamp', old files have this behavior but newly made curves have it disabled.
Double checked this gives useful results with stretch on/off and negative axis.
A subtle change with the curve deform modifier is when a vgroup is used: the mesh bounds were being calculated based on the verts in the group (ignoring their weight).
Now ignore verts weighted at 0.
Setting the 3d cursor in perspective mode would keep the cursor behind the viewport,
now check if the cursor is begind the viewport and use the orbit location to set the cursor depth rather then the existing plane.
I use this as a tag that the script SHOULD be pep8 compliant, warnings the pep8 checkers give can be fixed later, without this I dont get any warnings.
also made all other exporters do this.
Made some internal changes.
- moved path functions from bpy.utils to bpy.path (similar to os.path)
- added functions...
bpy.path.ensure_ext(path, ".ext", case_sensitive=False) # simple function to ensure the extension is set.
bpy.path.resolve_ncase(path) # useful for importing scenes made on windows where the path case doesnt match the files.
- flip option now flips faces rather then flipping loop order. Now it can copy vertex data in chunks the size of the original vertex count.
- converted macro's to static func's and some general cleanup.
poll() function is now a static method in python, this is more correct, matching C where the operator is not created to run poll.
def poll(self, context): ...
is now...
@staticmethod
def poll(context): ...
Pythons way of doing static methods is a bit odd but cant be helped :|
This does make subclassing poll functions with COMPAT_ENGINES break, so had to modify quite a few scripts for this.
The BGE was getting the namespace dict directly from __main__ which conflicts
with my recent fix to get the pickle module working which to overwrote the __main__ module on script execution.
Simple fix is to have the BGE and Blender use the same method of getting namespaces.
Renamed CreateGlobalDictionary() to bpy_namespace_dict_new() and moved into bpy_internal_import.c
pickle still wont work in the BGE since we make a copy of __main__ namespace but for speed would rather not have to replace the __main__ module many times per second.