Age | Commit message (Collapse) | Author |
|
|
|
bmesh.utils.vert_collapse_edge, vert_collapse_faces, vert_dissolve, face_split
|
|
|
|
updated if the proxy is built more then once (windows)
Two issues are fixed here:
- On windows rename() doesn't actually renames file if destination file is already exist.
Solved by ulinking previously built proxy/timecode.
- IMB_TC_MAX_SLOT was set to incorrect value leading to record run timecode calculating
several times.
|
|
Compilation error was mostly caused by trying to use namespace std before it was
actually defined (e.g. before any include of stl header).
It's not actually good idea to use namespaces in header files -- it's really easy to
run into namespace conflicts and so. Resolved by not using "using namespace" in header
files and using full quality accessing to stl collections (e.g. std::vector).
|
|
* BM_vert_in_face now loops over a vert's faces rather then every vert in the face.
* rename bmesh_radial_find_first_facevert --> bmesh_radial_find_first_faceloop
* rename bmesh_radial_find_next_facevert --> bmesh_radial_find_next_faceloop
* rename BM_vert_collapse_edges --> BM_vert_collapse_edge (only collapses one)
|
|
Thanks!
|
|
* Remove obsolete comments in the Oren Nayar code.
|
|
Hopefully this will fix #30196: Proxies Not Visible in VSE Preview Window until Blender Reboot
|
|
The new functions are ccg_gridsize, ccg_edgesize, ccg_spacing, and
ccg_edgebase. These target most of the left-shift operations in the
code.
|
|
* bmesh.types, just allows access to BMVert, BMEdge etc.
* bmesh.utils, so far only added edge_split() function, this module will give access to mesh editing functions.
|
|
arg.
|
|
- use edge example for BM_face_split().
|
|
* BMFace.copy(verts=True, faces=Trur)
* BMEdge.other_vert(vert)
|
|
|
|
std', since this is included in many places.
|
|
|
|
|
|
The implementation was also changed in a couple ways: use unsigned
integers as its base type rather than unsigned chars, and uses macros
rather than functions. (These could be changed to inline functions.)
Currently it is still only used during PBVH building, but now it's
accessible elsewhere.
|
|
|
|
Should be no functional changes.
|
|
At the point where GPU_build_mesh_buffers is called, the
face_vert_indices map has already been built; it contains the same
data in an easier-to-access format.
|
|
|
|
Should be no functional changes, just shortens the amount of code
living in the macro.
|
|
|
|
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...
|
|
really start building with player on so that mistakes like this can be detected early.
|
|
|
|
(foo) blah;), to follow http://wiki.blender.org/index.php/User:Nazg-gul/CodeStyle proposition.
|
|
* 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.
|
|
comments to C, and misc spaces/tabs cleanup). No functional change.
|
|
undesired dark rings, and give more accurate lighting when the light is
behind the object. As a bonus, the code is simpler & faster.
Patch by Yasuhiro Fujii, detailed explanation here:
http://mimosa-pudica.net/improved-oren-nayar.html
|
|
* Ctrl+Click extrude wasnt normalizing the quaternion (was printing warnings)
* bmesh bevel was supposed to add a float layer and remove, but removing passed the mask define of the customdata layer.
|
|
* Some small UI tweaks, grey out image settings rather than hide and made it a bit more compact.
|
|
|
|
|
|
eg:
verts = bm.verts[1:-7]
|
|
* is_valid (all types)
* is_wire (verts/edges)
* is_boundry (edge only)
* is_manifold (verts/edges)
also corrected own error, missed updating BMesh operator formatting char (broke erase only-faces)
|
|
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.
|
|
New method of vertex shapekey propagation didn't restored coordinates in
me->mvert array which lead to unwanted deformation of basis mesh and
lead to issues like described in the report.
|
|
|
|
|
|
in bmesh's api.
|
|
optionally another bmesh element.
This allows BMFace.verts to be added without defining a new sequence type.
|
|
corrently allows to create and loop over verts/edges/faces, access selection and selection modes.
this is still WIP, access to face, edge verts is still missing, no access to UV's, no access to editing operations yet.
When the api is ready it will be documented by sphinx like mathutils, blf, aud.
|
|
|
|
|
|
Added subdivisions shortcut for mesh editing mode to maya preset.
Not actually sure such shortcut present in Maya, but seems to be logical
to have it both object and edit modes.
|
|
Keypam for midpoint knife cutting was disabled for a while due to
midpoint toggle was moved to a model keymap and i'm not sure how to
start operator with midpoint enabled by default.
|
|
Error
In fact, error was much deeper and DND parenting in outliner used to parent all selected
objects to drop target, not just currently dragging object.
This was caused by code sharing between Parent Set operator and this DND operator which
was iterating all selected objects in scene and was setting parent to it.
Solved issue by separating actual parenting code which makes specified object be parented
to specified parent and moved iterating to Parent Set exec callback.
Now both of discovered issues (unneeded loop error and parenting all selected objects)
are solved, but more extensive testing of this changes are welcome.
|