No other BPyModules do this and zero user lattices are kept so this check is not needed.
removed lattice.applyDeform(), this called object_apply_deform, which only gave a message to use modifiers.
changed the example in epydocs to apply the lattice using modifiers.
an error in Scene.c - scn.Layers disallowd all layer bits to be set.
made image_billboard.py rotate all images to be verticle for more efficient packing, added the option not to pack resulting images into 1.
uv_archimap still had python based line intersect
added plane2matrix function to BPyMathutils
added an optional arg to imageFromObjectsOrtho - camera_matrix
camera_matrix can be used to define a plane in 3d space where X and Y scale is used to set the width and height of the area to render.
scn.objects.new(None) - adds a new empty
- new objects are selected by default now
further stripped down the vector struct, the wrapped state was being stored and 2 places.
added in place operations.
Vector_iadd vec1+=vec2
Vector_isub vec1-=vec2
Vector_imul vec1*=float or vec1*=mat
Vector_idiv vec1/=float
length is now writable vec.length= float
removed the need for casting python objects to Vectors pyobjects when performing vec/float arithmatic.
a PyObject for coercing has also been removed from the vector struct so a little less memory will be used also.
Benchmarked before and after this change
___________________________________
import Blender
v= Blender.Mathutils.Vector
m= Blender.Mathutils.Matrix
a= v(1,2,3)
b= v(3,2,1)
c= m()
t= Blender.sys.time()
for i in xrange(20000000):
a*b
a*10
a/10
a+b
b-a
a*c
print Blender.sys.time()-t
_______________________________________
Before 63.5sec
after 49.5
about 3 sec of that is looping
The wait cursor was being called during editmode enter and exit for meshes.
This was a problem for several reasons. First of all, python modules like
Mesh now make use of editmode features. These methods that wrap editmode
tools may be called many times during the execution of a script
and lead to the wait cursor rapidly flickering on and off.
The other problem was that the wait cursor wasn't being called for editmode
enter and exit of all data types. This is unified now.
-New Arguments
enter_editmode() should be passed a nonzero integer or simply EM_WAITCURSOR
if the wait cursor is desired. Currently only the python API passes a '0'
to enter_editmode()
exit_editmode() has several options and they are passed in as the bitflags
EM_FREEDATA, EM_FREEUNDO and EM_WAITCURSOR. These flags are defined in
BDR_editobject.h.
Added Mesh .key .removeAllKeys() and .insertKey() for MDD support (was using NMesh just for keys before)
Since this is aparently an experemental feature in NMesh we may want to change this.
BPyRender.imageFromObjectsOrtho() returns an image
Made all image bake scripts ask before overwriting a file. as well as displaying the newly created image once its rendered.
with regards to the noise functions in yafray based on Ken Musgrave's
original code.
I had left the 'Copyright' notice in the comments, and according to
Cyril Brulebois this is a problem. In fact, from what I understand this
makes it even impossible to use or modify the code in other software.
But since it is not a verbatim copy of the code but rather based on Musgrave's
work, he suggested I change it to explicitely state that it is in fact
based on the code from the 'Texturing & Modeling' book.
And since the yafray code is in turn based on the blender code, I better
adapt the blender code too.
This reminded me that I also have forgotten to include the copyright notice
in the mersenne twister rng code I used for the Python Noise module.
This does clearly state to include the original notice with any resdistributed
code, in modified form or not. So I added that too.
I hope that solves the problems.
Added to existing scn.objects
scn.objects.active (get/set the active object for the scene)
scn.objects.selected - an iterator that only uses selected objects
scn.objects.context - an iterator on objects in the user context (visible in the current 3d views layer and selected)
These are the same type as scn.objects but .add() .remove() .new() .active etc raise errors. so scn.objects.selected.add() will raise an error.
Made nested loops possible with scn.objects, metaball.elements and ob.modifiers, by initializing the iter value as NULL and creating copys of the pyobject when _getIter() is called if ->iter is not NULL.
This is how pythons xrange() works.
making it much more useful. Requested and taunted for frequently by
Plumiferos folks. Click on "Use Rot" to take target object rotations
into account.
Good for using rotated empties, etc., as a sloped floor.
This made nested loops with the same python object mess up.
eg-
faces= me.faces
for f1 in faces:
for f2 in faces:
print f1.index,f2.index
This didnt work, fixed by initializing the iter value at -1, so any greater value will create a new BPyObject with its own iter value.
once iteration is finished, its set back to -1.
Also made face and edges iter value a char instead of an int to save some memory.
exactly the same as mesh_create_derived_render(ob) except it uses the view modifier settings.
Added an optional arg to getFromObject to 'render' so you can choose to get the mesh displayed in the 3d view or generate one with render settings.
Solved bug 4612 getFromObject now works with soft body meshes (error was caused by getting the derived mesh from a copy of the object)
removed workaround for softbody bug in object_apply_def.py
applied patch #4998 (array count), as well as adding other array settings, updated documentation as well.
added EXPP_setVec3Clamped() as a way to set a vector from getset attrs (used with array offset and scale)
but for images user counts work differently.
(just noticed this is what blender does so Image.New() now does the same)
Many of the sys functions had maximum path thengths that were too short.
char path[FILE_MAXFILE];
rather then
char path[FILE_MAXDIR + FILE_MAXFILE];
* removed get/set in favor of setsetattrs
* added an element iterator to the metaball data type.
* now accepts vectors and quat for location dimensions and rotation.
and other small changes.
Docs updated shortly at.
http://members.iinet.net.au/~cpbarton/ideasman/BPY_API/Metaball-module.html
other changes
typo in image.c
metaballs constants in buttons_editing