Commit Graph

47594 Commits

Author SHA1 Message Date
Howard Trickey
fc84402632 Mistake in previous commit test for API vert new: it failed for no-arg case. 2012-02-29 15:35:10 +00:00
Campbell Barton
29b027294d use floats rather then doubles for bmesh poly functions. 2012-02-29 15:21:09 +00:00
Howard Trickey
87af0e1912 Undid part of commit 44552: can't use mathutils on doubles 2012-02-29 15:10:01 +00:00
Campbell Barton
7cc206ddca Code Cleanup: remove non existing function declarations.
added some missing functions too - which are not used yep but should be there for api completeness.
* CDDM_set_mloop
* CDDM_set_mpoly
* BLI_mempool_count
2012-02-29 15:00:37 +00:00
Sergey Sharybin
0cec655b29 Fix #30328: Crash when using edge slide
Looks like it was missed BMesh element index for faces in emDM_drawMappedFacesMat.
There was already call of BM_mesh_elem_index_ensure to ensure there's element
index for vertices, added flag to ensure there's also index for faces.
2012-02-29 14:32:09 +00:00
Howard Trickey
0d2ba6bff6 Code cleanup, no functional change: use mathutils copy
Also renamed a variable to make intent clearer (else seemed like
there was a bug).
2012-02-29 14:23:31 +00:00
Howard Trickey
d330efa084 Fix 30401: Python API vert new((0,0,0)) crashes.
Thanks to Campbell for fix, adding an & to an arg.
Also needed to negate the sense of a later test.
2012-02-29 14:16:35 +00:00
Brecht Van Lommel
3e159f65f9 UI: change shortcut to clear value in button with mouse over it (for the second
time, sorry), from delete to backspace. Delete did not work on buttons in nodes,
because it would delete the node itself or if we changed the priority interfere
with deleting nodes if the cursor was placed accidentally over a button in a node.

Patch by Damir Prebeg.
2012-02-29 14:10:12 +00:00
Campbell Barton
17ee9f77c5 bmesh py api - initial support for selection history. 2012-02-29 14:05:03 +00:00
Sergey Sharybin
c058ba207f Compilation error fix for recent indicer refactor commit. 2012-02-29 13:17:11 +00:00
Sergey Sharybin
d8bdd4497e Refactor of proxies build operators
Split proxy build operator into three parts:
- Prepare context (IMB_anim_index_rebuild_context) which prepares all
  needed data and stores it in an anonymous structure used by specific
  builder lately.
- Build proxies/timecodes into temporary files (IMB_anim_index_rebuild)
  This function will build all selected proxies/timecodes into a temporary
  files so old proxies will be still available during building.
- Finish building proxies (IMB_anim_index_rebuild_finish) which copies
  temporary files over old proxies filed and releases all resources used
  by a context.

Context creation and finishing building happens in a main thread so
it's easy and safe to close all opened handles of proxies files and
refresh cache after rebuilding is finished.

This should finally fix #30315: Temporary proxy files are not erased and old proxys are not updated if the proxy is built more then once (windows)
2012-02-29 12:08:26 +00:00
Nicholas Bishop
33baddfc47 Code cleanup: replace a few macros in CCGSubSurf with inline functions. 2012-02-29 08:35:23 +00:00
Campbell Barton
a6f420b828 update doxygen comments for bmesh. 2012-02-29 06:55:10 +00:00
Nicholas Bishop
b18794c3b6 Add blenlib function to initialize vectors from a single float.
The new functions are copy_v2_fl, copy_v3_fl, and copy_v4_fl.
2012-02-29 04:17:26 +00:00
Mike Erwin
8600c8df43 ndof button handling improvements: Spaceball5000's A,B,C buttons can now be keymapped, ndof modifiers (shift,alt,etc.) are almost ready but still hardcoded to act like keyboard for now. added a check to prevent crash on Linux when device is plugged in after blender starts. also fixed a bug introduced by my last commit that affected the SpaceTraveler and serial devices. 2012-02-29 02:44:08 +00:00
Tamito Kajiyama
a20ca0ca32 Better fix for degenerate triangles in imported mesh data.
This commit replaces the solution in revision 44534.

It is recalled that a degenerate triangle is a triangle such that
1) A and B are in the same position in the 3D space; or
2) the distance between point P and line segment AB is zero.

Unlike the previous solution, the present fix is capable of
any mesh topology involving any number of degenerate triangles.

Degenerated triangles are removed in two steps.  First,
degenerate triangles in the second form are transformed into
the first form by moving P to the position of either A or B
that is closer to P.  This modification affects all triangles
sharing the vertex P.  Then, all degenerate triangles in the
first form are removed by just ignoring them.

Obviously, the present solution has a disadvantage that
resulting strokes may appear incorrect.  This drawback is
justified by the fact that the present solution is robust and
easy to implement.  Users are expected to fix incorrect
strokes (if any) by manual removal of degenerate triangles
from mesh data.
2012-02-29 01:11:37 +00:00
Nicholas Bishop
a71128828f Bugfix: vertexpaint blur brush was broken.
Just a minor loop iteration bug.
2012-02-29 00:14:58 +00:00
Nicholas Bishop
1ebb6e3360 Code cleanup for the neighbor_average() sculpt function.
Moved some of the code into a couple new mesh functions for searching
in poly loops to simplify the function, the rest is just cosmetic
changes.
2012-02-28 23:08:40 +00:00
Campbell Barton
d279fb503d Style Cleanup, no functional changes. 2012-02-28 22:54:09 +00:00
Campbell Barton
e6ca57b929 fix [#30367] Face Fills Crossed
when making a quad from 2 edges - it was comparing the edge lengths to avoid making a bowtie quad. but this doesnt work in all cases, now compare normals instead.
2012-02-28 22:52:09 +00:00
Tamito Kajiyama
5729156c36 Experimental fix for degenerate triangles in imported mesh data.
This commit is an attempt to address degenerate triangles (i.e.,
triangles whose area is zero) that cause incorrect line visibility in
Freestyle.

There are two forms of degenerate triangles.  Let A, B and P denote
the three vertices of a triangle.  A degenerate triangle is a triangle
such that 1) A and B are in the same position in the 3D space, or
2) the distance between point P and line segment AB is zero.  Note
that the first form is a special case of the second form.  Degenerate
triangles in the first form is easy to remove by the Remove Doubles
command.  This commit is intended to address those degenerate triangles
in the second form.

The implemented fix cannot address degenerate triangles in general.
It fails when a triangle touches with multiple degenerate triangles.
A more general solution needs to be implemented.
2012-02-28 20:56:31 +00:00
Nicholas Bishop
132544dd02 Fix a couple typos in comments. 2012-02-28 20:55:55 +00:00
Nicholas Bishop
4f884e21b2 Add solid background behind text in search menu.
This fixes the issue of text being hard to read due to (e.g.) black
text on a dark icon.

Example: http://www.pasteall.org/pic/show.php?id=27401
Reviewed by Brecht: http://codereview.appspot.com/5699098/
2012-02-28 20:46:55 +00:00
Campbell Barton
d309aa2d9a fix for leak in bmo_edgenet_fill_exec and remove invalid comment. 2012-02-28 20:06:52 +00:00
Campbell Barton
dcfd1dd7e2 code cleanup: de-duplicate bmesh face creation code, 2012-02-28 19:30:44 +00:00
Campbell Barton
2a7f1af61e Code Cleanup:
- apply some rules for function naming conventions, added to main bmesh doc in bmesh.h.
- remove unused function BM_loops_to_corners().
2012-02-28 19:10:53 +00:00
Campbell Barton
d1d11bbe9b more header re-arranging.
Some function comments were in headers, some in the C files, some in both.
Moved function comments from headers into the C files.
2012-02-28 18:28:30 +00:00
Campbell Barton
df0f0c63d3 bmesh: re-arrange headers 2012-02-28 16:47:12 +00:00
Campbell Barton
c48a5fd821 code cleanup,
- bmesh_newcore.c -> bmesh_core.c.
- add bmesh_interp header.
2012-02-28 16:29:48 +00:00
Campbell Barton
ed04c21374 code cleanup: use float vector size in function definitions, and const's where the values are unchanged. 2012-02-28 14:05:00 +00:00
Campbell Barton
150cedac5d fix [#30361] Edge Length will not be diplayed properly with Clipping Borders
the clipping test done for text drawing was called with local=FALSE, however with mesh info text this needs the local argument to be set.
2012-02-28 13:18:20 +00:00
Campbell Barton
9baab70aaf code cleanup: make clipping enable/disable into functions (was being done inline in drawobject.c) 2012-02-28 13:03:56 +00:00
Campbell Barton
95c14aa685 Fix UI error - some curve settings were in the path panel and were greyed out when 'Path Animation' was disabled, but were infact used for the curve deform modifier.
noticed while looking into bug [#30349].

Move these settings under the main curves panel under text "Path / Curve-Deform:"
2012-02-28 11:18:05 +00:00
Campbell Barton
0d66b57bc2 fix for issue reported in bug [#30381], though it doesn't deal with the crash.
calling DM_ensure_tessface() on an DM_TYPE_EDITBMESH does nothing, which is OK but was printing a warning.
2012-02-28 10:22:21 +00:00
Campbell Barton
b0a09bfab3 code cleanup:
use bmo_* prefix for operator defs, was confusing with bmesh_* api functions.
2012-02-28 09:48:00 +00:00
Campbell Barton
e828b10251 Code Cleanup
* remove one the changes to fix #30374, instead just check if the face exists.
* remove some unneeded edge checks in BM_face_create_quad_tri_v().
2012-02-28 08:17:53 +00:00
Campbell Barton
7536bcbe70 Code Cleanup: bmesh
* remove unneeded struct's from headers.
* give argument names for return ** pointers r_ prefix.
2012-02-28 07:42:48 +00:00
Campbell Barton
94f171f2c6 fix [#30374] Can't Fill Triangular Face
the problem was a triangle couldnt be made when there was a quad that used 3 of the verts.

* now check if overlapping face has same length as the one to be created.
* an unrelated fix - the output of a triangle was not being flagged by the bmesh_contextual_create operator.
2012-02-28 07:19:28 +00:00
Campbell Barton
e6c5ff95be patch [#30331] Support clang-3.0
from Yasuhiro Fujii (y-fujii)

only small part of the patch for now.
2012-02-28 05:19:54 +00:00
Campbell Barton
6dcbba943b bmesh py api - element hide_set() function which flushes hidden state. 2012-02-28 05:02:34 +00:00
Nicholas Bishop
87ddcab933 Bugfix: avoid reading from an OpenGL buffer mapped write-only.
When set to solid-shading, GPU_update_grid_buffers was calling
normal_quad_v3 to output into a mapped buffer, but normal_quad_v3
reads as well as writes.

This fix actually makes a huge performance difference with my drivers
(Gallium/Radeon).
2012-02-28 05:00:28 +00:00
Nicholas Bishop
79fbd39aab Remove DerivedMesh.getFaceMap and create_vert_face_map().
Not used anymore, both have BMesh replacements (DerivedMesh.getPolyMap
and create_vert_poly_map.)
2012-02-28 04:00:56 +00:00
Nicholas Bishop
bfc331dd75 BMesh: use MPoly rather than MFace in multiresModifier_base_apply 2012-02-28 03:54:31 +00:00
Nicholas Bishop
2a4cd1d203 Bugfix for clipping of SEARCH_MENU icon text.
For the preview-icon search menu (used for example in brush
selection), clip the text so that long names don't flow out into the
space between columns.
2012-02-28 01:55:27 +00:00
Campbell Barton
fa38c3dbac bmesh code cleanup - remove most of BKE_bmesh and remove BKE_bmeshCustomData.h. 2012-02-27 21:33:30 +00:00
Campbell Barton
d2cab3e8b0 move bmesh wiki docs into bmesh header and update doxygen.
also have doxygen ignore *.py files and fix some warnings.
2012-02-27 20:27:19 +00:00
Bastien Montagne
40fca4ed21 Quite a warning (unused param in func), was preventing debug build... 2012-02-27 18:20:58 +00:00
Bastien Montagne
49adbe3ab8 Various fixes to UI messages (among other things, all messages needed it should now be capitalized). 2012-02-27 18:14:56 +00:00
Campbell Barton
684a2c8dca fix for error in python context.copy(), calling in byttons view would raise an exception.
buttons view used incorrect return value. -1 is for valid but not set (could use defines/enum here).
2012-02-27 18:08:31 +00:00
Lukas Toenne
050428049f Implements a new operator for detaching nodes. In the process i overhauled the node muting system as well.
There are a number of features that use a kind of "internal linking" in nodes:
1. muting
2. delete + reconnect (restore link to/from node after delete)
3. the new detach operator (same as 2, but don't delete the node)

The desired behavior in all cases is the same: find a sensible mapping of inputs-to-outputs of a node. In the case of muting these links are displayed in red on the node itself. For the other operators they are used to relink connections, such that one gets the best possible ongoing link between previous up- and downstream nodes.

Muting previously used a complicated callback system to ensure consistent behavior in the editor as well as execution in compositor, shader cpu/gpu and texture nodes. This has been greatly simplified by moving the muting step into the node tree localization functions. Any muted node is now bypassed using the generalized nodeInternalRelink function and then removed from the local tree. This way the internal execution system doesn't have to deal with muted nodes at all, as if they are non-existent.

The same function is also used by the delete_reconnect and the new links_detach operators (which work directly in the editor node tree). Detaching nodes is currently keymapped as a translation variant (macro operator): pressing ALTKEY + moving node first detaches and then continues with regular transform operator. The default key is ALT+DKEY though, instead ALT+GKEY, since the latter is already used for the ungroup operator.
2012-02-27 17:38:16 +00:00