Age | Commit message (Collapse) | Author |
|
no functional changes.
|
|
D1988 by @wisaac, with own edits and improvements.
This improves on existing tangent calculation functions too.
- BM_face_calc_tangent_auto: Chooses method based on number of sides, used by manipulator (not exposed to Python).
- BM_face_calc_tangent_edge: from longest edge.
- BM_face_calc_tangent_edge_pair: from longest edge-pair (most useful with quads).
- BM_face_calc_tangent_edge_diagonal: edge farthest from any vertex.
- BM_face_calc_tangent_vert_diagonal: vert farthest from any vertex.
Also optimize BM_vert_tri_calc_tangent_edge* functions to avoid sqrt.
|
|
Symmetrize was unusable with multi-res data,
add an option for the bmesh operator not to flip the multi-res depth.
|
|
|
|
Was local to knife code, but this is generally useful.
|
|
Caused a crash in dyntopo.
|
|
Calculating normals is called often (sculpting for eg),
so avoid using high-level iterator here.
|
|
|
|
|
|
Access from Mesh -> Cleanup
|
|
Triangulate with beautify caused a bug when there were existing edges
could make the bmesh-operator return an invalid face-map.
Now the beauty is calculated on the 2d-tri's resulting from polyfill,
its simpler and faster.
|
|
also rename vars which were previously used for scanfill.
|
|
nice for solid-modeling, gives better results for partial selections.
|
|
- selecting a boundary edge would randomly point in/outside the face (now point away).
- selecting 3 verts would use the first selected edge as the tangent (now use longest).
- selecting 1 vert betweem edges, uses the edges to define the tangent.
|
|
Turned out there was still quite a few cases were indices were set dirty,
but elem_index_dirty was not tagged accordingly (mostly for BM_LOOP,
but a few others as well). So probably this crash was not the only one
hidden here.
Hopefully all possible cases were catched this time!
|
|
We need to support cutting degenerate ngons, see: T39418
This commit disallows cuts across faces where the same vertices can create better cuts on different faces.
|
|
|
|
also make face normal calculation functions return normal length
|
|
- could crash if triangulate attempted to create an existing face.
- tagging edges to rotate was unreliable, don't do this anymore.
now check if edge is in the array passed to the beauty function.
|
|
|
|
|
|
This adds BM_bmesh_calc_tessellation() so we can get triangles from a
bmesh without having to have an editmesh available.
|
|
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
|
|
The ear loop method is potentially too slow (OˆN).
We are not using the 'beauty' option at the moment.
I'll incorporate that next.
(and later specific methods for quad splitting)
Patch done in collaboration (and reviewed by) with Campbell Barton.
|
|
also set attributes for the header and remove debug print in mask.c
|
|
Instead of having ifdef __GNUC__ all over the headers
to use special compiler's hints use a special file where
all things like this are concentrated.
Makes code easier to follow and allows to manage special
attributes in more efficient way.
Thanks Campbell for review!
|
|
|
|
also add polyCos array which cache's face centers, gives overall ~20% speedup to drawing on a high-poly mesh in face-editmode.
|
|
all 2d operations)
|
|
|
|
|
|
some speed.
|
|
all tris will be filled in.
(effected knife project and laplacian smooth).
|
|
calculation assumed unselected face were not ngons.
- added convenience function BM_face_calc_tessellation() to get triangles from an ngon.
- expose volume function as BM_mesh_calc_volume().
|
|
make sure its valid. also remove some commented code (more then one generation of bmesh old).
|
|
BM_mesh_triangulate() function. Gives ~2x speedup in my tests on an optimized build.
|
|
conversion).
|
|
|
|
C: BM_face_calc_area(f), Py: BMFace.calc_area()
|
|
|
|
|
|
also removed private face normal update functions - they were same as public.
|
|
alternate direction.
|
|
Some function comments were in headers, some in the C files, some in both.
Moved function comments from headers into the C files.
|