Commit Graph

365 Commits

Author SHA1 Message Date
Campbell Barton
a31c40ac00 bugfix for solidify modifier rim faces which were created from triangles, would get wrong customdata copied since it used the 4th index of a tri.
fixed already in bmesh.
2012-01-09 09:30:04 +00:00
Campbell Barton
0bdbdc35b0 de-duplicate wave modifier texture function.
cmon - copying large functions between files is obviously stupid, dont do it!
2012-01-04 05:39:56 +00:00
Campbell Barton
520cb6f452 replace wave spesific enum with generic onces 2012-01-04 05:24:01 +00:00
Campbell Barton
b1719ecf20 edits to UV project modifier which make it easier to sync with bmesh. 2012-01-04 05:13:29 +00:00
Campbell Barton
a02f89c2ad bugfix - get_texture_coords() used by wave/warp/weight modifiers could initialize a verts coords from the 4th UV of a triangle face. 2012-01-04 04:56:06 +00:00
Thomas Dinges
434c1e6df8 Remesh Modifier:
* Fix for Campbell's "option to build without remesh modifier for cmake and scons" commit, this broke scons!
2012-01-03 04:03:41 +00:00
Bastien Montagne
defa99b65c Fixed names of VertexWeight modifiers RNA structs, in RNA_access.h (probably forgotten when they were renamed, before the merge in trunk, and was never noticed as they are not used...).
Also removed the $ID$ from remesh modifier header, and quited a gcc warning.
2012-01-01 16:09:32 +00:00
Bastien Montagne
1b4487e813 Fix [#29728] Explode Modifier Causes Crash.
The problem was in fact in recent BLI_edgehash changes: a typo in the new macro EDGE_ORD made v0 > v1, instead of v0 < v1. This caused the bug in explode modifier, which (ab)uses that ordering feature a bit…
2011-12-31 15:10:38 +00:00
Campbell Barton
ba8d1b940f option to build without remesh modifier for cmake and scons 2011-12-31 03:34:44 +00:00
Nicholas Bishop
289c8b5758 Add remesh modifier (dual contouring).
This patch adds a new remeshing modifier. The algorithm is based on
the paper "Dual Contouring of Hermite Data", and the implementation
was contributed to Blender by Dr. Tao Ju.

The contributed code is in intern/dualcon, and was modified to compile
under gcc and work on 64-bit systems. Files not needed for Blender
were removed and a small C wrapper was added in order to interface it
with Blender. The rest of the patch is just standard modifier stuff.

Reviewed by Sergey, code review link:
http://codereview.appspot.com/5491053/

The remesh icon was contributed by Zafio:
http://blenderartists.org/forum/showthread.php?240751-Request-for-modifier-icon/page2.
Thanks to everyone in that thread for the icon proposals and
discussion.

Documentation and examples on the Blender wiki:
http://wiki.blender.org/index.php/User:Nicholasbishop/RemeshModifier

In case the history is needed for anything, check the remesh-modifier
branch of this git repository:
https://gitorious.org/~nicholasbishop/blenderprojects/nicholasbishop-blender
2011-12-30 21:11:40 +00:00
Campbell Barton
f951cbb90c remove unused initFlags option in mirror modifier 2011-12-29 06:32:50 +00:00
Campbell Barton
c058d252d1 minor edits to trunk mirror modifier, use unsigned ints since the vertex values are unsigned + minor formatting edits 2011-12-29 06:07:34 +00:00
Campbell Barton
85a97f64a7 add UNLIKELY / LIKELY util defines to help optimize iterators that are called a lot, only defined for gcc at the moment.
also some cmake formatting edits.
2011-12-29 01:46:58 +00:00
Sergey Sharybin
fe2131367b Fix #29696: Crash on exit of edit mode after deleting contents of fluid domain
Added NULL-check to copying material number and flags when loading cache
2011-12-28 17:59:56 +00:00
Campbell Barton
0b00bb236c make MOD_dynamicpaint.c use more typical gpl2+ text and some formatting edits in DNA 2011-12-28 11:08:38 +00:00
Campbell Barton
2e92b14bc6 copy BLI_edgehash changes from bmesh branch, main change is use of mempool. 2011-12-28 10:20:37 +00:00
Campbell Barton
f89aeae10c sync some edits with bmesh 2011-12-28 07:43:06 +00:00
Campbell Barton
397d7d949f remove unneeded casts from 'unsigned int' to 'int' 2011-12-27 03:54:23 +00:00
Campbell Barton
eb3beca8d4 replace u_int64_t with cc99's uint64_t as suggested by Nicholas Bishop. 2011-12-24 03:03:42 +00:00
Campbell Barton
ddcf56366d change customdata mask from an 'unsigned int' to an 'u_int64_t', since BMesh branch has run out of bits 2011-12-23 20:30:23 +00:00
Bastien Montagne
4045b46676 Some small perf tweaks to weightvg proximity: do not use indices in case all vertices are affected... 2011-12-22 14:04:25 +00:00
Bastien Montagne
738fdc7b6f New modifier type: eModifierTypeType_NonGeometrical, for modifiers affecting CustomData layers only (e.g. UVProject and WeightVG ones).
Also, allow applying to obdata those modifiers, even with shapekeys, but do not allow applying them *as* shapekey (as shapekeys do not have CD layers).

Fix [#29636] Vertex Weight Mix modifier "apply" button don't work.

Note: applying whit shape keys currently always uses base shape, not current one (for apply to obdata as well as apply to shapekey), but this is another topic...
2011-12-20 14:15:59 +00:00
Bastien Montagne
2bfad340ff Fix a small typo-bug in UVProject modifier (using v3 instead of v4 to detect tri/quad faces). Seems it was harmless, though... 2011-12-20 09:57:01 +00:00
Bastien Montagne
41c992ce85 Much cleaner and satisfying code in weightvg modifiers' "init": copy only the CD_DEFORMVERT data layer (if it's the org one), and not the whole DerivedMesh!
Quite oddly, for Proximity mod, this increases the performances of the apply func (about 20-25%, e.g. from 0.04 to 0.03 sec), but decreases the global framerate (e.g. in TEST_5 scene of testing file, I lose about 7%, from 4.6 to 4.3fps (open ATI driver)...).
2011-12-19 14:09:36 +00:00
Bastien Montagne
90ef435145 Fix a bug in CustomData_duplicate_referenced_layer(_named) functions: MEM_dupallocN does not work with complex layers like CD_MDEFORMVERT ones, so rather use copy func when available. 2011-12-19 08:26:53 +00:00
Campbell Barton
65f2cbdd0f remove windows only benchmark functions, use PIL_time.h's TIMEIT macros instead. 2011-12-18 22:35:52 +00:00
Bastien Montagne
64567ffb87 Minor tweaking to WeightVGProximity modifier code (not really usefull currently, but mandatory for other future changes…) 2011-12-18 21:46:26 +00:00
Campbell Barton
84236c2502 use 2d copy functions with UV's in more places. 2011-12-17 03:46:38 +00:00
Brecht Van Lommel
3311164b24 Math lib: matrix multiplication order fix for two functions that were
inconsistent with similar functions & math notation:

mul_m4_m4m4(R, B, A) => mult_m4_m4m4(R, A, B)
mul_m3_m3m4(R, B, A) => mult_m3_m3m4(R, A, B)

For branch maintainers, it should be relatively simple to fix things manually,
it's also possible run this script after merging to do automatic replacement:
http://www.pasteall.org/27459/python
2011-12-16 19:53:12 +00:00
Bastien Montagne
9996188791 New fix for [#29543] Hook modifier: falloff + vgroup influence broken
Don't know why, but creating a dm when there was none broke multi hooks on curves (see #29567)... So as a valid dm is only mandatory for meshes when a vgroup is set, only create it in those cases!
2011-12-15 08:57:48 +00:00
Campbell Barton
40a2c1a292 more vertex weight edits,
* replace inline loops with api calls.
* change constraints so verts with 0.0 weight are ignored like they are everywhere else.
2011-12-14 22:54:38 +00:00
Joshua Leung
a88b29c062 Bugfix [#29567] Second Hook Modifier fails on Curve Object
This was broken in r.42515. In particular, rigs with Spline IK would break,
since they often use curves with hook modifiers controlling the control-points
of those curves.
2011-12-10 03:37:37 +00:00
Campbell Barton
f025b7b511 went over all uses of MDeformWeight.def_nr and made sure the value is clamped when used as an array index. 2011-12-09 08:20:27 +00:00
Bastien Montagne
46626e4f5f Fix [#29543] Hook modifier: falloff + vgroup influence broken
A valid derivedmesh is needed for modifier_get_vgroup to work, and it wasn’t take care of when not in edit mode... Checked quickly the other deform modifiers, they all seem to handle this correctly.
2011-12-08 15:50:28 +00:00
Campbell Barton
2b82498544 minor refactor of vertex group functions,
- defvert_remove_index's index wasnt used anywhere, rename to defvert_remove_group
- defvert_add_to_group was local in MOD_weightvg_util.c, moved to deform.c and renamed to defvert_add_index_notest

real fix coming next...
2011-12-08 03:47:45 +00:00
Campbell Barton
cbd5b492b1 remove use of deprecated struct members
- editmesh smooth & subdivide were using old mirror axis flag still.
- removed colbits from outliner and object code.
- commented some other parts of the code which access deprecated members and aren't called anywhere.
2011-12-04 06:39:35 +00:00
Campbell Barton
064d46eef0 use consistent naming for deform.c, also moved defvert_remove_index into deform.c, was local in modifier code. 2011-11-30 07:39:54 +00:00
Campbell Barton
f62ad8f69b remove header text:
"The Blender Foundation also sells licenses for use in proprietary software under the Blender Licens"

also remove NaN references from files that have been added since blender went opensource.
2011-11-29 10:54:47 +00:00
Campbell Barton
a2e1060862 quiet some warnings and logical errors.
- curve map insert point had a nested loop which used the same value to index different arrays.
- dynamic paint used ternary operator where both outcomes were the same.
2011-11-27 23:41:01 +00:00
Campbell Barton
6736576f6d replace FILE_MAXDIR + FILE_MAXFILE with FILE_MAX 2011-11-26 04:07:38 +00:00
Brecht Van Lommel
2345efc6c5 Patch #29336: renaming UV (Texture) Layer to UV Map in the user interface,
by Gaia Clary.

Rationale: the name was confusing and not always used consistently, and this
map itself is not something that can be layered, rather the map can be used
as texture coordinates in some layered setup.

The original intent was to indicate this contained more than just UV's, but
the game engine settings have already been moved out, and apparently users
didn't really get this from the name anyway.
2011-11-23 17:25:25 +00:00
Bastien Montagne
8d5d87c447 Fixed some glitches with WeightVG modifiers:
* Added some RNA tooltips, now that they are supported by dropdown lists.
* Fixed some RNA num properties UI steps.
* Fixed a memory leak in Proximity modifier (when dm of "target" object had to be created, it wasn’t freed...).
2011-11-23 14:40:15 +00:00
Campbell Barton
055ddbc22d looking at CustomData_add_* functions - best the return valye is checked. 2011-11-22 19:01:52 +00:00
Campbell Barton
761ebc7b59 more minor edits to ocean sim code 2011-11-22 18:51:01 +00:00
Campbell Barton
b78701f6fe ocean sim
- UV's were not being calculated if there were too many VColor layers.
- precalc (omd->size * omd->spatial_size) was being called in a loop.
- use vector functions to avoid pointer indrections on each access which the compiler wont optimize - eg: och->ibufs_disp[f]->rect_float[4*(res_x*j + i) + 1]
- dont call abs() on ints (converts to double and back to int in this case).

also unrelated render buttons change. move saving options directly under the file path since these were easy to confuse with image format options like zbuf, ycc, preview.. etc.
2011-11-22 18:03:33 +00:00
Campbell Barton
36fa74b50e remove unnecessary switch() statement from ocean sim loop. 2011-11-22 15:10:08 +00:00
Campbell Barton
fd742566a6 - use cache_ as a prefix for new modifiers.
- some comments to recent image changes.
2011-11-22 10:04:28 +00:00
Lukas Toenne
d4f27b7bf0 Yet another fix for crashes when drawing empty base mesh with constructive modifier. This crashed with ocean modifier (#29241). The previous fix was to avoid drawing mapped faces altogether for empty edit mesh, but that also disables the actual derived mesh display (#29346).
The real reason for this crash is that ocean modifier (in generative setting) does not properly set the derived mesh face ORIGINDEX data to ORIGINDEX_NONE. With this the previous fixes are not necessary.
2011-11-21 11:46:05 +00:00
Campbell Barton
f1eb66aa68 share code for fluidsim, ocean & dynamic paint file paths.
- use BLI_join_dirfile for joining all paths (no need to ensure slash is appended).
- paths from linked library files now supported.
2011-11-20 14:38:11 +00:00
Lukas Toenne
17b113c784 Option to rename the vertex color data layer used by Ocean modifier for foam. The modifier outputs foam values to both textures and a (temporary) vertex data layer. This layer was unnamed before, which makes it impossible to access in shader nodes. Now the user can input a custom name in the modifier panel, then use that same name in a shader input node to access foam values.
http://www.pasteall.org/pic/21120
2011-11-20 14:16:41 +00:00