Commit Graph

12883 Commits

Author SHA1 Message Date
2bc96c07a7 Bugfix #6864:
Copying Displace modifiers by themselves did not work correctly. The code was incorrectly just copying memory for source modifier to the new copy, causing problems due to the ModifierData struct at the start of the DisplaceModifierData struct (linked list pointers still referring to old stack).
2007-06-20 05:23:31 +00:00
01e8789f3f == PyConstraints ==
At last! The ability to code constraints in Python. This opens up many interesting rigging possibilities, as well as making prototyping constraints easier.

* A PyConstraint script must begin with the line 
#BPYCONSTRAINT
* It must also define a doConstraint function, which performs the core actions of the constraint.
* PyConstraints use IDProperties to store custom properties for each PyConstraint instance. The scripter can choose which of these ID-Properties to expose to a user to control the behaviour of the constraint. This must be done using the Draw.PupBlock method.

Credits to Joe Eager (joeedh) for coding the original patch on which this is based. I've made heavy revisions to large parts of the patch.

For more detailed information, and some demo scripts, see the following page:
http://aligorith.googlepages.com/pyconstraints2
2007-06-18 07:41:21 +00:00
a499da7192 Curve Selection Tool Refactor:
This commit refactors curve selection system to use certain curve selections
functions that encapsulate setting of selection flags. New function to select
adjacent control points was introduced too. Refactoring made it possible to 
simplify certain existing selection functions quite a bit. 
New functionality was delivered as well. Select more/less works now with NURBS 
as expected. Also two new curve selection functions were added: Select Every Nth 
and Select Random. 

See http://wiki.blender.org/index.php/BlenderDev/Curve_Selection_Tools for 
further information.
2007-06-14 14:36:27 +00:00
Nathan Letwory
12d32f5cf9 === Verse ===
* add preliminary verse method support to Blender. This gets really interesting whenever I get Verse Chat completed.
2007-06-11 10:42:38 +00:00
10a22bdba7 subsurfs EDGE_getSharpness function was looping when it didnt need to and also took an unused value.
removed loop and unused var, since this is a sensitive (and not my) area - I did some mesh comparisons and ran a comparison with the old function passing random values, so this should be ok.
2007-06-09 10:51:02 +00:00
ee0c3245e7 Fix possible segfault in blender.
tname can be bigger of 21 character, in that case
strncpy don't put the final '\0' to the name this.
2007-06-06 15:11:16 +00:00
0a436e01e2 filelen is set to the return result of BLI_filesize
which can return -1.  So lets check for -1 before calling malloc
and doing more work.

Another coverity fix.

Kent
2007-06-05 15:43:20 +00:00
ba958bea0f -> Custom Properties for Mesh entities
In order to give import/export script authors the ability to add properties
to inidividual faces, vertices and edges in the same manner as they are able
to do with ID structures three new custom data types have been added to blender
for floats, integers and strings.

Things to note:

-Since property Layers are custom data, they are added to all verts, edges 
 or faces at once.
-Only one property layer for each unique property name may exist. In  other 
 words, you cannot have a float layer as well as an integer layer
 both with the same name.
-No user interface for this exists at the moment.

The following methods and attributes have been added to the Blender.Mesh
Python module and it's object types:

->MVert/Edge/FaceSeq:
	addPropertyLayer(name, type)
	removePropertyLayer(name)
	renamePropertyLayer(original name, new name)
	properties(readonly list.)

->MVert/Edge/Face
	getProperty(name)
	setProperty(name, value)

->Mesh module
	PropertyTypes (readonly dictionary)
2007-06-04 19:18:19 +00:00
0016aa9e71 Bugfix #6799
Particle system was messing up depsgraph tags, causing bad results
in commandline renders especially (or in rendering first frame of
animation).

Fixed with introducing a temp storage tag in Objects. The real fix
should be to make particle systems behave nice inside the depsgraph.
2007-06-03 08:34:32 +00:00
84ec2711ac == NLA Editor ==
When adding a new Action Strip to an Object which didn't have any Action Strips previously, NLA-override mode is turned on by default for that object (the Action/NLA-icon beside the expand/collapse triangle).
2007-06-01 10:38:17 +00:00
1a9f0e692a == Multires ==
* Moved the multires vertex data from struct MultiresLevel to struct Multires. There's no longer any reason to store data seperately for each level; it was just taking up extra memory.

* Incremented the subversion to 2 and adjusted do_versions to correctly load older files.

* Refactored the multires update process (which handles propagating changes to other levels)
2007-06-01 02:21:11 +00:00
17a219e3c0 == Shader nodes ==
* Geometry node: Front/back output
This is used as a mask for determining whether you're looking at the front side or back side of a mesh, useful for blending materials, my practical need was giving different materials to the pages of a magazine: http://mke3.net/blender/etc/frontback-h264.mov

Give 1.0 if it's the front side, and 0.0 if it's the back side.

* Extended material node
This is the same as the material node, but gives more available inputs and outputs, (basically just connecting up more of ShadeInput and ShadeResult to the node). I didn't want to add it to the normal simple Material node since you don't always need all that stuff, and it would make the node huge, but when you do need it, it's nice to have it.

== Comp nodes ==

* Invert node
Inverting is something that happens all the time in a node setup, and this makes it easier. It's been possible to invert previously by adding a mix node and subtracting the input from 1.0, but it's not the best way of doing it. This node:
 - makes it a lot faster to set up, rather than all the clicking required with the mix node
 - is a lot more usable amidst a complex comp setup, when you're looking at a node tree, it's very helpful to be able to see at a glance what's going on. Using subtract for inverting is easily mixed up with other nodes in which you are actually subtracting, not inverting, and looks very similar to all the other mix nodes that usually litter a comp tree.
 - has options to invert the RGB channels, the Alpha channel, or both. This saves adding lots of extra nodes (separate RGBA, subtract, set alpha) when you want to do something simple like invert an alpha channel. I'd like to add this option to other nodes too.

There's also a shader node version too.


* Also a few fixes that I committed ages ago, but seems to have been overwritten in Bob's node refactor:
 - adding new compbufs to the set alpha and alphaover nodes when you have only one noodle connected to the lower input
 - making the fac value on RGB curves still work when there's nothing connected to it
2007-05-31 06:55:02 +00:00
a8bc1f3397 fix for a crash in Blender.Mesh,
getting curve data from an object failed (with only 1 curve vertex)
Blender.Mesh didnt check this and crashed.
2007-05-28 16:49:48 +00:00
d6cbdabfe1 Bugfix for python Image.save()
[ #6702 ] Image doesn't get saved after painting & packing
IMB_saveiff - (general saving function), does not write a file when the image is packed.
so write a file with writePackedFile for packed files.
2007-05-22 19:40:11 +00:00
9ac39d2e99 =ID Properties=
The code for preserving ID properties was apparently not
working.  Fixed that by adding a new function,
IDP_ReplaceInGroup, that automatically handles overriding a
property in a group while preserving the property order.

Its odd though that the previous fix I had wasn't
working :/
2007-05-22 04:41:21 +00:00
33466557fc Disable SSS better for preview rendering, so it does not slow down
other preview renders at all.

Also added a flag to enable/disable SSS per scene. There is no
button for it yet, the Render panel has no space left .. will find
a place for it later.

The subversion number was also increased to enable the flag for
older .blends.
2007-05-17 16:51:09 +00:00
3c469b88f5 == Constraints Code ==
Relatively harmless removal of useless code. Also formatted things in a few places.
2007-05-17 06:45:16 +00:00
fc0ee80fc1 Fixed editmode post-modifier normal calculation for the case where there are
only deform modifiers in the stack. This was an old bug: a typo caused quad
face normals to be calculated using the same vertex twice, giving bad normals.
2007-05-16 17:20:02 +00:00
8bfa253479 Fixed the "Enable modifier during editmode" button for the case when there are
only deform modifiers in the stack. The code that copied the cage mesh to the
final mesh didn't check for vertex coordinates; I have added this check.
2007-05-16 15:19:54 +00:00
a6b123e198 Part one of 2.44 release commit. 2007-05-10 09:52:44 +00:00
f5da767487 bugfix #6672
Object with object-action:
Crash after unlinking an Ipo, and then inserting new key positions in 3d
window.
2007-05-09 16:38:04 +00:00
c8c8a92ab6 In very rare cases, an offset-bone could not exist, whilst the action
channel does. Then it crashes...

This commit adds a NULL test, but now trying to solve how this case
can happen.
2007-05-09 11:16:32 +00:00
Ken Hughes
170a0cbeb4 check_for_dupid() was checking wrong variables for on name changes; could
allow IDs will null names ("") to be entered into listbases multiple times.
2007-05-06 21:42:43 +00:00
b711bf185b Bugfix (reported on BA forums):
Blender crashed when the Armature Modifier was supplied with the name of a Vertex
Group which did not have any verts assigned to it.
2007-05-05 09:31:01 +00:00
de2fc6d687 Fix for bug #6629 - modifiers and vertex-parenting
I have changed the vertex parenting code to use the derivedFinal mesh rather
than derivedDeform; this gives the result after all modifiers have been
applied, rather than the result up to the first non-deforming modifier as it
did before. Since the derivedFinal mesh can have more than one vertex
corresponding to a single vertex in the base mesh, the average of all such
vertices is used.
2007-05-04 16:36:39 +00:00
3a8c6c81d8 Subsurface scattering:
Documentation on the settings, known limitations and implementation
info can be found here:
http://www.blender.org/development/current-projects/changes-since-243/subsurface-scattering/
2007-05-03 21:37:52 +00:00
c71949419e == UV/Image Editor ==
Patch #6570.

This patch adds color and alpha selectors to Image -> "New..." dialog.
2007-05-03 15:10:44 +00:00
Nathan Letwory
180d58430b Ortho type of camera is now also controlled by CAM_LENS ipo. 2007-05-02 16:45:13 +00:00
a8756ba013 missed out with 2 active layers that should be active_rnd 2007-05-02 01:40:27 +00:00
c24aa10561 Made it so blender has an active render layer for Uv and Vertex color mesh layers.
This means changing the active UV/VCol layers wont change what renders.
needed to adjust the minor version so old files will copy the active layer to the render-uv/vcol layer.

boxpack2d.py - redoen in C now, dont need python version.
2007-05-02 00:01:23 +00:00
c40997656e Really minor updates related to code I wrote for the Cast modifier:
- modifier.c: moved a check out of a loop, removed an unneeded var, made a couple cosmetic changes.

- DNA_modifier_types.h: added parentheses to cast and smooth modifier defines that used bit-shifting (like 1<<1, etc.).

Note: realized they were needed when I tried to use "flag &= ~MOD_CAST_Z" in modifier.c. Since MOD_CAST_Z is #defined as 1<<3, ~MOD_CAST_Z ended up as ~1<<3 while I wanted ~(1<<3). There are other places in that header file and others in Blender where it'd be safer to add the parentheses...

- Updated the epydoc documentation for the features added by Ben Batt to the cast modifier; fixed small typo in API_intro.py.

BTW, thanks Ben Batt (artificer) for checking, improving with a couple features and committing these modifiers :).
2007-04-30 19:20:43 +00:00
469208a101 Patch #6192 - Wave Modifier Option to move verts along normals
This patch adds an option to the wave modifier to displace along the normals
of the base mesh, rather than in the local Z direction.

Thanks to Michael Fox (mfoxdoggg) for the patch!
2007-04-30 16:49:12 +00:00
0b66fe6a48 Patch #6582 - Weight groups in the wave modifier
This patch adds vertex group functionality to the wave modifier, allowing the
user to specify a vertex group with which to modulate the wave deformation.

Thanks to Michael Fox (mfoxdoggg) for the patch!
2007-04-30 15:20:05 +00:00
22e1a26681 * Small tweak - initialise mirror modifier to use X axis by default,
as it was previously.
2007-04-30 06:51:24 +00:00
125c77bca3 Patch #6113 - Cast & Smooth modifiers
This patch adds two modifiers: Cast and Smooth.

The Cast modifier deforms vertices into a sphere, cylinder or cuboid shape.
The location and orientation of the projection shape can be controlled by a
specified control object.

The Smooth modifier smooths the mesh in a similar way to the Edit mode "Smooth"
button.

Thanks to Willian Padovani Germano (ianwill) for the patch!
2007-04-29 18:13:55 +00:00
d0ac7ef087 Patch #6584 - Texture functionality in the wave modifier
This patch allows the user to use a texture to modulate the wave modifier's
amplitude.

Thanks to Michael Fox (mfoxdoggg) for the patch!
2007-04-29 16:15:50 +00:00
f62f07734f Patch #5629 - Mirror modifier axis' to be toggleable
This patch makes the X, Y and Z axes of the mirror modifier individually
toggleable, so it is possible to mirror in more than one direction with a
single modifier.

Thanks to Juho Vepsäläinen (bebraw) for the patch!

NOTE: BLENDER_SUBVERSION has been incremented to support translation from old
      to new axis specification.
2007-04-29 14:00:30 +00:00
99135b0674 dont use tface hide or select anymore, since maintaining 2 sets of hide/select data for each face is annoying.
using mface->flag for both.

Also found that the cdDM_drawMappedFaces and cdDM_drawFacesTex_common could get normals mixed up when rendering hidden faces. because hidden/invisible faces used continue without advancing to the next normal.
2007-04-29 13:39:46 +00:00
243d1a28c0 Casting fixes for 64 bits. Incomplete commit, discussion on proper casting
has to be finished.
2007-04-29 10:49:02 +00:00
76c11ec9f7 - support for fake verse edges (subsurf modifier should work now)
- edges are generated from verse faces
   - no support for lose edge!
   - informations about edges aren't sent to verse server (other applications
     can't share edges with blender)
- better sending/receiving vertex position
2007-04-27 14:04:30 +00:00
01335fc7bb Bugfix:
Previous versions of Blender allowed Vertex Groups to be nameless, which
shouldn't be allowed. This caused problems with rigs from previous versions of Blender being loaded in 2.43+ versions, as the new VGroup feature for the
Armature modifier mis-identified these nameless group(s) as being the Vertex Group
to be used. As well as the checks done when renaming VGroups (from another commit), files created prior to and in 2.43 will have all such groups given default
names.

Code notes:
* I've moved the unique_vertexgroup_name function from src to blenkernel like for
 constraints
* Formatting in deform.c tidied up a bit
2007-04-27 11:16:35 +00:00
adae1a7b77 Bugfix:
Specular pass was excluded from Shaded drawmode, missing initialize of
new 'exclude passes from result' option. Bug in 2.43 release...

Added warning in code, ShadeInput is initialized here locally, need an API
call for it.
2007-04-26 09:01:37 +00:00
77f08ddc12 editface.c & buttons_logic.c & Draw.c & verse_session.c - added missing header
Bone.c - return an empty list rather then None for bone.children bone.getAllChildren()
Draw.c - per button callbacks are now have (event, value) passed
2007-04-24 17:28:40 +00:00
c7b1e5c11d export_fbx.py - support scene start/end frames, fpx, mist settings, better default camera writing.
BPyObject.py - function for getting an objects armature, look at both parent and modifier.
editmesh_add.c and BPyAddMesh.py - check for multires
filesel.c, Append/Link had a bug where files linked in, didnt have the LIB_APPEND_TAG unset, and appending these into a new blend file would link instead.
BKE_library.h, library.c - utility functions for flagging listbases flag_all_listbases_ids and and flag_listbase_ids
2007-04-20 18:48:30 +00:00
2857861023 Buf fix for #6571
- metaball_tree= NULL; was missing in code
2007-04-20 12:56:51 +00:00
9c36683373 =ID Properties bugfix=
The array resizing function, meant to be used with strings, 
didn't work.  This  is because the id property size table 
had the wrong value for strings.
2007-04-19 22:49:48 +00:00
3f7bcc44ce Bugfix #6565
Nice discovery by Ralf (cheleb): crasher with colorband, caused by NULL
pointer reading. It actually reveiled a weakness in code too, the
buttonswindow context was not set appropriate when buttons window had not
a header...
2007-04-16 10:55:59 +00:00
16be2ce5ba == Multires ==
Possible fix for bug #6208, Blender crashes in sculpt tool

* make_orco_mesh_internal was using the render level rather than the pin level to create orcos

Note that since this bug never caused a crash on my system, I can't confirm that this fixes 6208.
2007-04-14 19:54:26 +00:00
0a0cf54a27 update to center view.
- Dont do anything if no verts or faces are selected (used to zoom into 0,0,0)
 - use the centers of dupli objects (should eventually use their bound boxes), much nicer when dealing with many dupli-objects
2007-04-14 13:18:24 +00:00
26735a6670 Added gamma, fixed typos in brightness 2007-04-13 04:22:32 +00:00