Commit Graph

1047 Commits

Author SHA1 Message Date
a31b450093 Screw Modifier: UV support
- When existing faces are available use their UV values
- When no faces are connected to an edge - generate UV's

Also add option to stretch U/V to bounds.
2013-11-26 21:31:32 +11:00
44718b66f1 Screw Modifier: copy face data when the original face is known.
also de-duplicate code for handling the closing face strip.
2013-11-26 21:07:24 +11:00
07bde9e797 Usual ui messages fixes... 2013-11-25 22:51:46 +01:00
2b4c68b902 CMake Build: option to compile without opennl/superlu. 2013-11-25 15:36:19 +11:00
673bd9a009 Mesh Modifiers: Added Laplacian Deform
Part of soc-2013-sketch_mesh branch

See: http://wiki.blender.org/index.php/User:Apinzonf/Doc:2.6/Manual/Modifiers/Deform/Laplacian_Deform
2013-11-24 07:10:42 +11:00
ac021a42ad Code Cleanup: use strict flags for screw modifier, reduce sign conversion 2013-11-21 10:36:56 +11:00
1ea47c9af9 Code Cleanup: style, spelling and pep8 edits 2013-11-20 03:40:10 +11:00
74a1e4dcf2 Fix T37519: Screw Modifier ignores material setup
This was more a missing feature then a bug, the modifier never handled
existing faces however with ngons its possible to get more useful
results. Also order edges from the faces (if available),
gives control over the face-winding-direction.
2013-11-19 13:15:12 +11:00
cee7fbdfaa Fix T37413 - Fit-Curve option for Array Modifier ignores constraint results
Unless I'm missing something here (probably with regards to parenting),
it makes more sense that constraint results are considered here as well
(for example, if Limit Scale constraints get applied on the object),
as this allows for greater flexibility when creating setups with this.
2013-11-18 14:02:49 +13:00
bfb9cefccb Added options for how bevel amount is measured.
Now there is an 'Offset Type' dropdown on tool
shelf with types:
Offset - current method, offset of new edge
  from old along sliding face
Width - width of new bevel face (if segments=1)
Depth - amount a chamfering plane moves down
  from original edge
Percent - percent of way sliding edges move
  along their adjacent edges

The different options mainly are useful when
beveling more than one edge at once.

Leaving as a TODO to put these in the modifier,
as doing that has more permanent effects so
want to let users shake out problems with this
first.
2013-11-10 12:31:57 +00:00
26dc289d99 Fix [#37315] Mirror+MeshDeform cause crash when Vertex Group is referred
One hour of efforts to spot such a small dummy typo!
2013-11-04 23:33:23 +00:00
c241bf30a0 Fix #37252: Mask modifier doesn't copy settings on object copy 2013-10-30 09:44:29 +00:00
Dalai Felinto
a7b44c82e5 Triangulate Modifier: using different ngon and quad methods
Quads: Beauty, Fixed, Fixed Alternate, Shortest Diagonal
Ngons: Beauty, Scanfill

* Shortest Diagonal is the default method in the modifier (popular
  elsewhere), but beauty is the default in Ctrl+T).

* Remove the need for output slot and beauty operator to be called
after Clt+T

Patch with collaborations and reviewed by Campbell Barton
2013-10-29 02:42:51 +00:00
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
ce741bc223 Code cleanup: de-duplicate implementation of get_texture_value
Expect to be no functional changes :)
2013-10-20 13:01:07 +00:00
d6b21df2e6 correct include guards and add checks in check_style_c.py for them. 2013-09-19 23:17:52 +00:00
a30a817933 UVProject modifier was still requiring old tesselated UV data instead of new poly/loop ones. 2013-09-18 15:48:24 +00:00
9f74134862 replace BLI_edgehash_insert with BLI_edgehash_reinsert for explode operator, was inserting the same edges more then once. 2013-09-15 01:47:40 +00:00
c9dfe7bd74 more localized fix for [#36299], only changes behavior for subsurf with orco in editmode 2013-09-12 10:41:00 +00:00
8beb565c59 code cleanup: headers - doxy comments. 2013-09-12 03:02:50 +00:00
00bd7da674 correct error in recent changes for building with openmp.
rename DM_OMP_LIMIT to BKE_MESH_OMP_LIMIT and set to 0 when in debug mode, same for BM_OMP_LIMIT.
2013-09-09 05:42:26 +00:00
9467d99405 replace sqrt(dot()) with length functions. 2013-09-03 22:32:03 +00:00
0994e7f96f move timeit macros into their own include, since they are only used for testing and unrelated to PIL_time.h typical use. 2013-09-03 21:22:43 +00:00
54310b8086 bmesh: internal api change, remove BMOElemMapping, its not needed since the values can be stored in the ghash directly.
saves 24 bytes per element (per vertex/edge/face on a 64bit system), for bmesh operators.
2013-09-02 03:13:51 +00:00
75383a79f6 array modifier was adding vertices to the 'targetmap' multiple times.
this is supported by weldop but would prefer not to allow multiple keys in the map.
2013-08-27 23:32:11 +00:00
52216889c0 Remove unused function NewBooleanMesh 2013-08-26 14:53:40 +00:00
f2acb10b6b edge hash: take an arg for the guarded-malloc string (as ghash does) 2013-08-24 13:08:55 +00:00
6cba2b8d73 move bmesh tools into their own include,
changes to tool args would rebuild far too many files and these are mainly by modifiers outside of bmesh.
2013-08-23 04:22:07 +00:00
9470754fd3 bmesh api cleanup, face creation args now accept an example face (as with vertex and edge),
also replace BM_face_create_quad_tri_v with BM_face_create_verts
2013-08-21 07:51:47 +00:00
8937a8b839 use BM_CREATE_NOP arg rather then zero, with pointer and bool args in either side in some cases it gets a bit confusing.
also correct edge-rotate where bool->flag conversion worked by accident.
2013-08-21 05:39:46 +00:00
57f8a252d6 fix own regression [#36443] Vertex to UV index doesn't match with 2.68a
add BM_face_create_verts wrapper for BM_face_create which creates its own edge array.
2013-08-21 05:11:11 +00:00
c46cbc602e Make lattice deform safe for threading
Lattice deformation used to store some runtime data
inside of lattice datablock itself. It's something
which is REALLY bad. Ideally DNA shouldn't contain
and runtime data.

For now solved it in a way that initialization of
lattice deform will create a structure which contains
lattice object for which deformation is calculating
and that runtime data which used to be stored in
lattice datablock itself.

It works really fine for mesh deform modifier, but
there's still runtime data stored in particle system
DNA, It didn't look something easy to be solved, so
leaving this as-is for now.

--
svn merge -r58277:58278 -r58795:58796 ^/branches/soc-2013-depsgraph_mt
2013-08-19 10:11:48 +00:00
527ddb0a5b Move bevel list and path from Curve to Object datablock
I know this is not so much nice to have this guys hanging
around in a general Object datablock and ideally they better
be wrapped around into a structure like DerivedMesh or
something like this. But this is pure runtime only stuff and
we could re-wrap them around later.

Main purpose of this is making curves more thread safe,
so no separate threads will ever start freeing the same path
or the same bevel list.

It also makes sense because path and bevel shall include
deformation coming from modifiers which are applying on
pre-tesselation point and different objects could have
different set of modifiers. This used to be really confusing
in the past and now data which depends on object is stored
in an object, making things clear for understanding even.

This doesn't make curve code fully thread-safe due to
pre-tesselation modifiers still modifies actual nurbs and
lock is still needed in makeDispListsCurveTypes, but this
change makes usage of paths safe for threading.

Once modifiers will stop modifying actual nurbs, curves
will be fully safe for threading.

Actually, this commit also contains wrapping runtime curve
members into own structure

This allows easier assignment on file loading, keeps curve-
specific runtime data grouped and saves couple of bytes in
Object for non-curve types.

--
svn merge -r57938:57939 ^/branches/soc-2013-depsgraph_mt
svn merge -r57957:57958^/branches/soc-2013-depsgraph_mt
2013-08-19 09:25:24 +00:00
5fafc222f0 style cleanup 2013-08-17 08:21:40 +00:00
5a9c012d86 fix for bug in rip tool, isolated verts would remain selected after ripping. 2013-08-13 01:52:36 +00:00
49411a6e37 fix own regression, rip tool wasn't handling selection. 2013-08-13 01:00:07 +00:00
98c574e41a use 'greater/less then or equal to' operators rather then adding 1. 2013-08-11 05:40:35 +00:00
d5fae4409a Fix #36417: vertex weight mix modifier crash with texture mask and subsurf modifier
preceding it, was writing past end of array.
2013-08-08 20:35:19 +00:00
00b39c4e5b code cleanup: more confusion with 0/NULL/false 2013-08-07 03:55:21 +00:00
f97a4bd254 code cleanup: more zero as NULL pointers. 2013-08-07 03:36:05 +00:00
34aa68f299 fix for using uninitialized boolean vars for mask select more/less 2013-08-06 03:45:11 +00:00
78d69a1e15 code cleanup: replace strcpy with BLI_strncpy for fixed size strings, and correct some harmless but incorrect sizeof() use 2013-08-04 18:12:49 +00:00
93f5e2218a code cleanup: replace strncpy -> BLI_strncpy, skip first 2 chars when making a hash from the object name. 2013-08-04 03:45:30 +00:00
e03b1668e0 code cleanup: remove unused functions
- IsectLLPt2Df
- isect_point_quad_uv_v2
- isect_point_face_uv_v2

These are obsoleted by resolve_tri_uv, resolve_quad_uv

also add attributes for unused function results for some math functions.
2013-08-01 17:15:11 +00:00
4982f200fa move alloca define into its own header since its not related to BLI_array 2013-07-28 10:38:25 +00:00
0cb9a83113 code cleanup: remove unused code 2013-07-27 18:17:19 +00:00
7c58ec9337 use math functions for copying matrix/vector types, also cast const pointers for freeing (clang error's out otherwise) 2013-07-26 10:43:23 +00:00
f77405356a remove use_relative option from simple deform,
all modifiers should be using object transformations relatively.
2013-07-23 19:31:49 +00:00
e50c37d90f code cleanup: remove deprecated bevel code (unused since 2.64) 2013-07-23 14:28:19 +00:00
6f8913b498 replave isfinite with finite for msvc 2013-07-23 07:40:07 +00:00