Age | Commit message (Collapse) | Author |
|
|
|
add mtexpoly image access
|
|
- bm.*.layers.*.verify()
- bm.*.layers.*.is_singleton
- bm.*.layers.*.copy_from(other)
also added api functons
- BM_data_layer_copy(...)
- CustomData_layertype_is_singleton(type)
|
|
- added select similar direction (Y axis)
|
|
wrong (own fault)
also add check so layer.name won't crash incase the layer becomes invalid.
|
|
blender - http://www.viva64.com/en/b/0145/
|
|
bm.loops.layers.color.new("Testing")
|
|
C: BM_face_calc_area(f), Py: BMFace.calc_area()
|
|
face_fill(..., coords=(v1, v2, ...))
This is the same function the knife tool uses. should be handy for dicing up geometry in py.
|
|
noticed.
|
|
|
|
|
|
maceros had unused args in both cases).
|
|
|
|
was used by inset but make into an api function since scripts can use this too.
|
|
generator has no access to ID Property types.
|
|
|
|
- memset(..., -1) is used incorrectly even though it worked: MOD_solidify.c - thanks Halley from IRC for noticing this. use fill_vn_i() instead.
- quiet warnings in editmesh_slide.c
- cleanup comments in bmesh and some other minor comment additions.
|
|
loop over edges and join them without having to check if they have been removed.
|
|
function.
|
|
also add py api BMDeformVert.clear()
|
|
added access to deform weights, access to weights acts like a python dict so you can do...
print(group in dvert)
dvert[group] = 0.5
print(dvert[group])
del dvert[group]
print(dvert.items())
|
|
|
|
|
|
added BMFace.material_index
|
|
|
|
|
|
- add examples for custom-data access
- group BMesh types logically in docs
- added missing docstrings
needed to add grouping functionality to sphinx for this.
|
|
|
|
next/prev to avoid confusion.
|
|
|
|
use different types for bm.verts.layers, bm.faces.layers, otherwise the layers look to have customdata type that isnt compatible, UV's on edges for eg.
|
|
old mesh MCol 'r' was blue, 'b' was red, but theres no reason to keep this for bmesh with MLoopCol.
Loading old files works, saving legacy format works too.
What wont work is loading a file after this revision and loading it in an older revision since the bmesh merge.
(it wont crash but the blue and red will be swapped on vertex color layers).
|
|
access to MLoopCol as mathutils.Color type
|
|
added per loop UV layer access
|
|
split up BMElemSeq into BMVertSeq, BMEdgeSeq, BMFaceSeq and BMLoopSeq
Was becoming cumbersome since each needed their own new() function, and other methods only worked for some of these types.
Added BMesh.loops - since you cant iterate over loops this is for customdata access only.
|
|
|
|
initial support for editing bmesh customdata per vert/edge/face/loop
shapes, crease, bevel weights working, missing UVs and Vertex Colors still.
|
|
Wrap customdata, so far you can access the data layers in a pythonic way but not manipulate the customdata yet.
provides dictionary like access to customdata layers, eg:
texpoly = bm.faces.tex["UVMap"]
print(bm.verts.shape.keys()) # un-intended pun, keys() works on all layers.
print("MyInt" in bm.edges.int) # __contains__
layer = bm.faces.get("CheckForLayer")
|
|
|
|
changes.
|
|
Vector.angle_signed(other)
for 2D vectors to get the clockwise angle between them.
in BLI math its called - angle_signed_v2v2()
shorthand for...
atan2f((v1[1] * v2[0]) - (v1[0] * v2[1]), dot_v2v2(v1, v2))
also corrects compile error in last commit.
|
|
eg:
bm.select_history = vert, face, edge
bm.select_history.add(edge)
|
|
warn when addons are not found when running cmake.
|
|
|
|
BMesh.select_history.remove/clear/validate functions.
|
|
BMEditMesh already stores an object pointer.
also fix for own mistake with mesh conversion refactor, shape key index was off by 1 when switching editmode.
|
|
- BMesh.is_wrapped
- BMesh.copy()
- BMesh.clear()
- BMesh.free()
- BMesh.from_object(obj, apply_modifiers=True)
- BMEdge.calc_length()
- BMLoop.calc_normal()
- BMLoop.calc_tangent()
|
|
funcs to ne less confusing.
|
|
rather than functions in the module.
added example script which converts a mesh to a bmesh, edits and converts back again.
|