Commit Graph

9362 Commits

Author SHA1 Message Date
Campbell Barton
4fd66d7c0c code cleanup: armature functions
- added BKE_pose_channel_get_mirrored (matching editmode function ED_armature_bone_get_mirrored)
- editbone_name_exists -> ED_armature_bone_find_name
2013-11-17 05:23:05 +11:00
Campbell Barton
e62cdbb474 code cleanup: rename flip_side_name to BKE_deform_flip_side_name 2013-11-17 05:23:05 +11:00
Bastien Montagne
1a0fed9ee0 More fix for this stupid uppercase-to-lowercase convertion code... Thanks to Lockal for noting this! 2013-11-16 15:34:47 +01:00
Antony Riakiotakis
e9c9706ce6 Code cleanup: Use different redraw options for sculpt mask operators.
Current redraw options also did an unnecessary normal recalculation on
updated nodes.

Also, for the box and lasso mask only push an undo node if any vertex
has actually been influenced.
2013-11-15 23:00:15 +02:00
Lukas Toenne
4d4ef0434b Make dynamic node labels possible as a registerable function 'draw_label' (simple 'label' identifier is already in use, need to avoid API breakage). This should simply return a string. The dynamic label can still be overridden by the user-defined node.label string. 2013-11-12 18:18:04 +00:00
Lukas Toenne
8663b940ed Instead of requiring a const char* return from the (optional) node label callback function, let it write into a mutable string buffer. This will allow actual dynamic labels for nodes using the python
API.
2013-11-12 18:17:58 +00:00
Bastien Montagne
59e4600526 Fix [#37380] vertex paint colors don't render.
Another Evil Typo (r) one, you could add much more than the 8 allowed VCol layers!

Note: added some (warning-only) checks in mesh validate functions, but we still have a big issue with new cdlayer merge function, which could generate more than 8 layers of UVs or VCol... Don't know yet how to handle this situation. :(
2013-11-11 20:37:19 +00:00
Sergey Sharybin
dcfb858a76 Fix #37395: Rendering with a movie strip behind a scene shows inconsistent results
For now just make sure conversion to sequencer space will ensure imbuf's
color space names is set properly.

Might be some further changes needed to make colorspace flow more clear
in sequencer, but that's for later.
2013-11-11 12:08:31 +00:00
Bastien Montagne
647f425265 Fix [#37394] UV Map cannot be renamed.
Own epic failure! CustomData_get_named_layer() returns a relative index, not an absolute one. :(
2013-11-10 20:32:27 +00:00
Bastien Montagne
d27f8103dd Fix [#37393] Input dimensions are case sensitive in the property panel, uppercase input is misinterpreted
Typo in lowercasing code!
2013-11-10 19:51:44 +00:00
Campbell Barton
8cf39603f7 replace IS_EQ -> IS_EQF for use with floats. 2013-11-10 12:56:50 +00:00
Bastien Montagne
5ef717bec6 [#37327] Inconsistent numeric input conversion.
Issue was actually that micrometer was not drawing correctly (from r58165), reverted that fix and instead use utf8 drawing for editmode metrics when using a unit system (we already had a similar hack for surfaces and volumes, anyway).
2013-11-08 11:25:50 +00:00
Bastien Montagne
a0286f42f9 "Render Audio" cleanup:
* Removed audio-only options from ffmpeg render settings (added some versionning code too)!
* Moved the Mixdon button from the Scene->Audio pannel to the Render->Render panel.
2013-11-07 13:32:32 +00:00
Lukas Toenne
7398600090 True grid snapping for nodes: This snaps nodes to the actual background grid instead of using incremental offset (which is not useful for nodes). Increment snapping has been disabled for nodes to avoid
confusion, grid snap is now the default as it seems to be the most wanted and easy to use mode.

Absolute grid snapping happens in a somewhat generic function 'applyGridAbsolute', which could also be used for objects and other transforms later on. It is conceptually similar to the 'project' snapping
option, in that it calculates a delta vector for each element on top of the overall transform, which places each node on the grid.

Node transform now uses the top-left node corner for TransformData->loc. The transform center is still the average of node centers, so that scaling and rotation works nicely.

snapGrid*** functions have been renamed to snapGridIncrement*** to distinguish better between incremental and absolute grid snapping.
2013-11-06 17:46:32 +00:00
Joshua Leung
50ac2ee8de Grease Pencil: User-Pref for setting the default colour of newly created layers 2013-11-06 10:59:05 +00:00
Kevin Mackay
299812f28d Made active point and active spline behaviour more predictable on curves/surfaces:
* deselect all no longer leaves an active point
* the most recently added spline becomes the active one
* on successful duplicate/delete the active point and active spline are reset
2013-11-05 23:37:09 +00:00
Joshua Leung
2cfe64cd10 Correcting a few typos 2013-11-05 10:57:52 +00:00
Campbell Barton
1b4afb161d code cleanup: typos 2013-11-05 04:23:46 +00:00
Campbell Barton
d07f3f793b add CDDM_lower_num_loops(), for completeness (currently unused). 2013-11-04 12:01:46 +00:00
Campbell Barton
3b91a77c7d code cleanup: typo in function name 2013-11-04 11:27:11 +00:00
Joshua Leung
a1d553a8f3 Bugfix [#36950] Restrict Frame Range not being obeyed on Driver F-Curves
By default, drivers (used to) automatically map the driver result (i.e.
"evaltime" or the x-coordinates in the driver graphs) to results. This evaltime
=> cvalue mapping is necessary when there are absolutely no keyframes or
modifiers on a driver F-Curve, or else nothing would happen.

However, when there are modifiers on these driver F-Curves, and these modifiers
only work within certain ranges, there would be confusing and unwanted
situations where even if you clamped the modifiers to only generating a curve
within certain frame ranges, the final driver output would still ignore the
results of the curve due to the underlying 1-1 mapping.

This commit introduces a check to ensure that this automatic mapping won't
happen during such invalid ranges.
2013-11-04 04:18:28 +00:00
Joshua Leung
5c0a8ca73f Quick test commit - fixing what looks like a typo in a comment 2013-11-02 13:08:48 +00:00
Campbell Barton
df1f21d678 code cleanup: warnings 2013-11-02 04:04:30 +00:00
Bastien Montagne
b375388959 Fix [#37266] Skin modifier can't be copied.
Patch by Martin Felke, many thanks.

When copying that modifier across objects, we also have to ensure that a skin CDLayer is present in dest objects (just as when adding it).
2013-11-01 08:31:36 +00:00
Andrea Weikert
fc0e225a77 FIX: [#37199] .ogg file is not recognized as a movie in File Browser
CHANGE: writing an animation in the ogg movie format now defaults to .ogv (ogg/video) which is recommended by Xiph.org for video
CHANGE: for .ogg files a check is added whether Blender can read it as a movie (is avi or ffmpeg movie), otherwise assume audio
CHANGE: the anim player now filters for the same extensions as the file browser
2013-10-31 21:00:55 +00:00
Campbell Barton
beae4f498d code cleanup: spelling 2013-10-31 14:10:01 +00:00
Sergey Sharybin
bc5218a0f4 Code cleanup: more int->bool conversions mask module 2013-10-29 18:56:21 +00:00
Sergey Sharybin
8f747c4923 Code cleanup: use bool instead of int in mask module 2013-10-29 18:46:45 +00:00
Lukas Toenne
2cccdd1678 Fix for particle texture influence bug causing undefined (nan) values: When using a texture with "Particles/Strands" coordinates that in turn has a "Lifetime" influence on the particles, the texture eval
accesses the particle lifetime/dietime data before it is actually defined! This is a design flaw, but to avoid corrupted data for now just initialize the lifetime/dietime values for particles in advance
before evaluating the texture.
2013-10-29 14:48:25 +00:00
Sergey Sharybin
e667f12783 Fix #37221: Multilayer EXR inputs generate pink frame/last displayed frame when using an image sequence offset
generally speaking, if multilayer image fails to load for current
frame doesn't mean anything bad. It might be used to make it so
image sequence is being alpha-overed somewhere in the middle of
scene time.

Made it so if the whole file fails to load, image node will
deliver black transparent color, the same what happens for
regular (non-multilayer images).

Also needed to tweak code in load_multilayer_sequwnce to make
sure no cached frames are pointing to a freed memory.
2013-10-28 12:16:17 +00:00
Campbell Barton
3264461598 move bmesh array lookup data and utility functions from editmesh into bmesh,
since enough bmesh operations can also take advantage of direct index lookups on verts/edges/faces.

developers note:
- EDBM_index_arrays_init/ensure/free -> BM_mesh_elem_table_ensure/init/free
- EDBM_vert/edge/face_at_index -> BM_vert/edge/face_at_index
- EDBM_uv_element_map_create/free -> BM_uv_element_map_create/free
- ED_uv_element_get -> BM_uv_element_get
2013-10-28 02:05:33 +00:00
Sergey Sharybin
9f32e83175 Weighted tracks
Added a weight slider to track which defines
how much particular track affects in a final
reconstruction. This weight is for sure
animateable.

Currently it affects on BA step only which in
most cases will work just fine.

The usecase of this slider is to have it set
to 1.0 most of the time where the track is
good, but blend it's weight down to 0 when
tracker looses the track. This will prevent
camera from jump.

Tutorial is to be done by Sebastian.
2013-10-26 13:22:38 +00:00
Campbell Barton
b461cc9cd4 code cleanup: merge doxygen comments into C source. 2013-10-26 03:56:32 +00:00
Campbell Barton
a304b5a988 correct typo 2013-10-25 22:12:05 +00:00
Sergey Sharybin
8bb39a536b Making real need to remove proxies
Otherwise some invalid pointers will be left
which could be harmless if real object stays
local, but crashes when linking them to
another files.

Was discovered here in the studio during
Project Pampa, and the steps to reproduce are:

- Create lib.blend, put armature and cube to it.
  Create a group with them.
- Create scene.blend and link group from lib.blend.
- Make a proxy from armature.
- Make group real.
- Add real objects to a group.
- Create comp.blend and link group from scene.blend.
  This step will creah.
2013-10-22 15:19:37 +00:00
Joshua Leung
df553892c9 Bugfix: Renaming bones now renames the corresponding F-Curves in actions used by
Action Constraints
2013-10-22 11:36:48 +00:00
Campbell Barton
c80c1c6f5c add copy_v4_fl4, replace QUATSET macro. 2013-10-22 03:31:21 +00:00
Campbell Barton
6193963daa style cleanup 2013-10-22 03:03:56 +00:00
Campbell Barton
7c8c49a34a style cleanup 2013-10-21 23:35:08 +00:00
Sergey Sharybin
ce741bc223 Code cleanup: de-duplicate implementation of get_texture_value
Expect to be no functional changes :)
2013-10-20 13:01:07 +00:00
Sergey Sharybin
e9d5e9813c Code cleanup: added generic function copt_m3_m3d 2013-10-20 12:08:51 +00:00
Bastien Montagne
e783611098 Arg! Fix another bug in split normal core algorithm (some flat faces were ignored, depending on the order of evaluation)... :/ 2013-10-19 13:48:51 +00:00
Sergey Sharybin
3887d33374 Remove paranoid check which was marked as unneeded for a while already 2013-10-18 23:41:11 +00:00
Sergey Sharybin
fc8b0ed5e5 Move utility functions from mball to mathutils 2013-10-18 23:38:51 +00:00
Sergey Sharybin
9afddac727 Fix for wrong active render layer after copying hr scene
Also fix crash for files which could have been saved with
wrong active render layer.
2013-10-18 09:45:21 +00:00
Kevin Mackay
4230b8f9c4 Patch [#37115] Surface split and separate operators
Added surface support to recent curve split operator, completing quick hack todo
Updated nurbs separate operator to make use of new split logic, completing tools todo
Added 'Delete segment' option to surfaces and improved surface duplication, used for split/separate
2013-10-17 19:57:14 +00:00
Lukas Toenne
27a662f670 Missing ParticleSystem->parent pointer check in BKE_object_unlink. 2013-10-17 19:31:59 +00:00
Brecht Van Lommel
56373ea271 Fix crash in scenes without camera markers, after recent fix for #37097,
first_camera variable was used uninitialized.
2013-10-17 15:51:12 +00:00
Sergey Sharybin
a0da34871a Fix for GCC bing stupid and not casting float*[3] to const float*[3] without a wanring :S 2013-10-17 14:44:23 +00:00
Sergey Sharybin
eb1b4c3b55 Fix #37097: Setting scene frame does not update active camera
The issue was caused by uncertainty of current camera when
there're no markers to the left of current frame.

Now in this case camera from the top-left marker will be used.
2013-10-17 14:10:03 +00:00