Commit Graph

7083 Commits

Author SHA1 Message Date
Campbell Barton
c3e192dcae bmesh api cleanup, remove unused header. 2012-02-23 10:24:20 +00:00
Nicholas Bishop
1df41811ac Code cleanup: replace some common CCG operations with functions.
The new functions are ccg_gridsize, ccg_edgesize, ccg_spacing, and
ccg_edgebase. These target most of the left-shift operations in the
code.
2012-02-23 07:21:33 +00:00
Campbell Barton
53fece44cf style cleanup for blenkernel, no functional changes. 2012-02-23 02:17:50 +00:00
Bastien Montagne
6c0361dff7 Armature pose evaluation: more factorization of code.
Now constraints' space conversion code also uses generic armature_mat_(pose_to_bone/bone_to_pose). Previous own function (constraint_pchan_diff_mat) was somewhat inconsistent too with Hinge/NoScale/LocalLocation options...
As with previous similar changes, this might break some old rigs, in very specific cases (when constraint-evaluating an hinge/noscale/local_location bone in local space).

In the same part of code, removed unnecessary matrices copying, mult_m4_m4m4 can take the same matrix as input and output, nowadays...

Also found a bug-generator weakness in those armature_mat_ functions (if both input and output mat where the same, result was wrong, now systematically copying input mat, as done in LIB's matrix funcs).

Finally, factorized offset bone matrix generation into its own small function too, as it is used in two different places in armature.c (pchan_to_pose_mat itself, and restpose's where_is_armature_bone).

Note: I think all parts of blender's code related to that topic have now been tackled, but yet have to check BGE, it’s probably using that stuff too, one way or the other...
2012-02-22 20:06:33 +00:00
Bastien Montagne
34e2fb40c7 More style edits (adding a space between statements and parenthesis, if (foo) blah;), to follow http://wiki.blender.org/index.php/User:Nazg-gul/CodeStyle proposition. 2012-02-22 16:21:17 +00:00
Campbell Barton
92c47145fd bmesh python api change in internal behavior.
* Only have 1 python object per bmesh, vertex, edge, loop, face.
* Store pointers back to the python data in a custom data layer so as not to use more memory for normal editing operations (when pythons not running).
* Currently this data is created and freed along with the BMesh PyObject.
* Incidentally - this fixes comparisons for bmesh elements which wasnt working before.
2012-02-22 16:08:30 +00:00
Bastien Montagne
b06beb6f35 Style code cleanup and consistancy (mainly spaces around assignements, C++ comments to C, and misc spaces/tabs cleanup). No functional change. 2012-02-22 15:35:42 +00:00
Sergey Sharybin
4ed01fe734 Fixed compilation error after recent node commit. 2012-02-22 12:59:43 +00:00
Lukas Toenne
3bae60d0c9 Adds a new node type for saving multiple image files from a single node.
Unlike the existing file output node this node has an arbitrary number of
possible input slots. It has a base path string that can be set to a general
base folder. Every input socket then uses its name as an extension of the base
path for file organization. This can include further subfolders on top of the
base path. Example:

Base path: '/home/user/myproject'
Input 1: 'Compo'
Input 2: 'Diffuse/'
Input 3: 'details/Normals'

would create output files
in /home/user/myproject: Compo0001.png, Compo0002.png, ...
in /home/user/myproject/Diffuse: 0001.png, 0002.png, ... (no filename base
given)
in /home/user/myproject/details: Normals0001.png, Normals0002.png, ...

Most settings for the node can be found in the sidebar (NKEY). New input sockets
can be added with the "Add Input" button. There is a list of input sockets and
below that the details for each socket can be changed, including the sub-path
and filename. Sockets can be removed here as well. By default each socket uses
the render settings file output format, but each can use its own format if
necessary.

To my knowledge this is the first node making use of such dynamic sockets in
trunk. So this is also a design test, other nodes might use this in the future.

Adding operator buttons on top of a node is a bit unwieldy atm, because all node
operators generally work on selected and/or active node(s). The operator button
would therefore either have to make sure the node is  activated before the
operator is called (block callback maybe?) OR it has to store the node name
(risky, weak reference). For now it is only used in the sidebar, where only the
active node's buttons are displayed.

Also adds a new struct_type value to bNodeSocket, in order to distinguish
different socket types with the same data type (file inputs are SOCK_RGBA color
sockets). Would be nicer to use data type only for actual data evaluation, but
used in too many places, this works ok for now.
2012-02-22 12:24:04 +00:00
Antony Riakiotakis
c7185d2652 Stitch tool fully functional again. Many thanks to Howard Trickey for proposing the loop winding criterion for normal disambiguation of edges. Unfortunately some extra memory has to be allocated for this to work correctly. If the tool had been initially written for bmesh I would have used the already present adjacency information to make it work, avoiding some extra allocations. Maybe a project for another day though, when I am more proficient with bmesh internals. 2012-02-22 00:06:15 +00:00
Antony Riakiotakis
a4e6967323 change UvElement to directly use BMLoop * instead of tfindex. This saves quite some lookups on uv sculpting and stitching. Based on BMESH todo by Campbell, thanks for the idea! 2012-02-21 19:41:38 +00:00
Sergey Sharybin
9064978d0b Remove unused code left from old multires interpolation stuff
- Removed validate() callback for MDisps layer. It wouldn't actually work
  correct from CustomData layer and all needed data might be validated from
  BMesh interpolation level. Also this callback was never actually used in
  BMesh, so can't see why we'll want to have it in structures.
- Removed layrInterp_mdisps callback. Interpolation now happens from
  another level (bmesh_interp) and this callback isn't needed anymore.
- Removed all function from multires.c which were used by old interpolation
  stuff and seems to be useless for other usages.
- multires_topology_changed is still marked as a TODO, Probably it's not
  needed anymore, buy better to keep for now until it'll be 100% clear this
  function isn't needed and all needed re-allocations happens in bmesh_interp.
  Otherwise, it'll be needed to be ported to new system.
2012-02-21 17:24:21 +00:00
Sergey Sharybin
b2fd08c754 Flip displacement direction after interpolation in bmesh_loop_interp_mdisps
This is needed because displacement might been interpolated from a grid
with different orientation and in this case X and Y components of displacement
are need to be flipped in needed order.

Order of flipping is determining by projecting source grids axis orientation
on target grid axis. This probably will give some unwanted artifacts when
interpolating non-planar face but currently can't think about better way
to determine how to flip displacement.

This commit makes operators like Subdivide works much more unpredictable
for sculpting data, but this stuff should be rethinked much more global
because current approach is not acceptable.
2012-02-21 17:23:03 +00:00
Brecht Van Lommel
3efe399ed4 Fix part of #30272: cycles preview render not updating when changing particle
emission from with instanced objects.
2012-02-21 16:34:00 +00:00
Brecht Van Lommel
d47b018f8d Fix #30270, #30265: cycles not displaying textured objects, and not rendering
text/curve objects after the bmesh merge. Also removed a debug print.
2012-02-21 14:39:59 +00:00
Sergey Sharybin
c8de268e1b Camera tracing: search area was always centered to marker's position when tracking 2012-02-21 12:59:52 +00:00
Campbell Barton
3c38830013 fix [#30264] B-Mesh: Crash when unwrapping ngon mesh with Smart UV project 2012-02-21 03:43:57 +00:00
Campbell Barton
1953f042e6 added boolean type for bmesh operators, will make python wrapping clearer and also makes existing calls more obvious.
also corrected some error reports.
2012-02-20 01:52:35 +00:00
Campbell Barton
a368e6771a - remove some unused editmesh functions.
- copy & rename EditMesh stricts for use with scanfill (remove unused members)
2012-02-19 22:17:30 +00:00
Daniel Genrich
d8a70df8cc Smoke
------
New: Child particles are used as emitter. 

Based on the patch #30013 by Kai Kostack. Thank you!

Please do test this code!
2012-02-19 20:05:01 +00:00
Campbell Barton
b1a3d3cea1 remove files no longer used since bmesh merge. 2012-02-19 19:27:06 +00:00
Campbell Barton
5148828356 svn merge ^/trunk/blender -r44235:44250 2012-02-19 17:59:30 +00:00
Campbell Barton
85d99737b5 fix for bug where particle system would fail when the original mesh had no tessface's 2012-02-19 17:44:36 +00:00
Bastien Montagne
5cd85ed57e More pose armature code factorization:
* New armature_mat_bone_to_pose, which is just the reverse of armature_mat_pose_to_bone (currently used by armature evaluation code only, but might be used by constraints space conversion code too, see note below).
* Found another place where another (a bit erroneous) pose_to_bone code existed (apply_targetless_ik(), in transform_conversion.c, used by "auto ik" option), replaced it by a call to armature_mat_pose_to_bone.

Notes:
* All those changes leave many #if 0 commented code, I will remove those in a few weeks.
* There is at least one other place where generic armature_mat_(pose_to_bone/bone_to_pose) functions should be usable: the space conversion function of constraints (constraint_mat_convertspace(), in BKE's constraint.c), but here I have some problems (old code is also somewhat erroneous, but using new one makes old rigs using bone space constraints wrong, e.g. sintel one, and it’s just impossible to make conversion code...). So I'll wait and investigate more for this one.
2012-02-19 11:09:44 +00:00
Campbell Barton
02b28e9162 replace MIN2 / MAX2 with minf / maxf to avoid calling functions multiple times. 2012-02-19 05:11:24 +00:00
Campbell Barton
bd0f7a290b svn merge ^/trunk/blender -r44213:44235 --- fixes bmesh shading bug [#30125] 2012-02-19 03:19:58 +00:00
Campbell Barton
4450039734 Change texface draw to always use glShadeModel(GL_SMOOTH), with texface draw.
without this each face would get a solid color, this is the same method used in object mode.

also copy BLI_array.h fix from bmesh branch.
2012-02-19 03:10:11 +00:00
Campbell Barton
22d326a663 skip per face texface poly lookup while drawing when the layer isnt found.
also remove some unused code.
2012-02-19 02:54:50 +00:00
Campbell Barton
4ca1d6f28f left print in by mistake 2012-02-19 01:52:59 +00:00
Campbell Barton
ece3418b4e edit-derived-mesh had a table for vert/edge/face lookups - that were never used.
removed these and replaced them with calls to BM_vert_at_index, BM_edge_at_index - which are not ideal but same as trunk does.
2012-02-19 01:51:36 +00:00
Campbell Barton
24f83c7e3e minor edits to sync up with trunk, remove crash save handler, this can be added later if we need but isnt really apart of bmesh specifically. 2012-02-17 21:22:18 +00:00
Campbell Barton
379527581b svn merge ^/trunk/blender -r44204:44213 2012-02-17 21:07:18 +00:00
Campbell Barton
48006292d8 svn merge ^/trunk/blender -r44189:44204 2012-02-17 20:56:25 +00:00
Sergey Sharybin
383756be48 Fixed compilation error cased by recent refactor of include guard defines. 2012-02-17 19:45:27 +00:00
Campbell Barton
61596d5bb3 patch [#30227] Various MSVC (32-bit) Warning and Typo Fixes
made some small edits
- removed changes to AVI reading since the data types are apart of the format spec.
- absf -> abs for a double value in render code.
2012-02-17 19:21:47 +00:00
Campbell Barton
2b7ca2304a unify include guard defines, __$FILENAME__
without the underscores these clogged up the namespace for autocompleation which was annoying.
2012-02-17 18:59:41 +00:00
Campbell Barton
4c66e696fb svn merge ^/trunk/blender -r44136:44189 2012-02-17 15:51:48 +00:00
Sergey Sharybin
071706e48f Missed this changes needed to fully support animation data in movie clips.
Thanks to Joshua pointed into missed changes!
2012-02-17 10:54:21 +00:00
Sergey Sharybin
ed3b7e2c23 Camera tracking: configurable filter type for 2d stabilization
--
svn merge -r44151:44152 ^/branches/soc-2011-tomato
2012-02-17 08:27:19 +00:00
Sergey Sharybin
fdeca277fd Camera tracking: run aspect correction before stabilizing shot
This commit fixes image stopped being an orthogonal rectangle because of horizontal
scaling caused by pixel aspect ratio happening after rotating image which used to
make orthogonal angles from footage not actually orthogonal.

--
svn merge -r44150:44151 ^/branches/soc-2011-tomato
2012-02-17 08:23:42 +00:00
Sergey Sharybin
0cc2966516 Camera tracking: fixed issue when track used for rotation stabilization points to a freed memory after re-tracking this track.
--
svn merge -r44148:44149 ^/branches/soc-2011-tomato
2012-02-17 08:20:21 +00:00
Sergey Sharybin
781b4cafbd Camera tracking: fixed incorrect auto-scale calculation for 2d stabilization
--
svn merge -r44146:44147 ^/branches/soc-2011-tomato
2012-02-17 08:17:46 +00:00
Sergey Sharybin
b83577aaec Camera tracking: fix for missing cache invalidation when disabling/enabling channels for stabilized shot
--
svn merge -r44140:44141 ^/branches/soc-2011-tomato
2012-02-17 08:16:29 +00:00
Sergey Sharybin
9d0b7b168f Camera tracking: animation datablock for MovieClip
Added AnimData block to MovieClip datablock which allows to animate different properties in clip.
Currently supports animation of stabilization influence only.

--
svn merge -r44129:44130 ^/branches/soc-2011-tomato
2012-02-17 08:13:45 +00:00
Sergey Sharybin
5fd24dc3f2 Build proxy from meta and image strips used resolution used for display,
not set by building job which leads to unusable proxies.

This change should resolve issues reported in #30229: Sequencer Meta strip Proxy Fails
and probably #30196 will work nicer too.
2012-02-17 07:32:18 +00:00
Thomas Dinges
a56eeb7024 Release Cycle for 2.63:
* BCon1, alpha.
2012-02-16 20:04:33 +00:00
Sergey Sharybin
62d09c9103 Tomato: configurable filter type for 2d stabilization 2012-02-16 15:03:37 +00:00
Sergey Sharybin
14a92fc3a2 Tomato: run aspect correction before stabilizing shot. 2012-02-16 15:03:18 +00:00
Sergey Sharybin
aa747f5889 Tomato: fixed issue when track used for rotation stabilization points to a freed memory after re-tracking this track. 2012-02-16 13:15:01 +00:00
Sergey Sharybin
fedb95da23 Tomato: fixed incorrect auto-scale calculation for 2d stabilization 2012-02-16 13:14:28 +00:00