Age | Commit message (Collapse) | Author |
|
|
|
In rare cases disolving faces would crash, caused by iterator
variable reuse in b29a8a5dfe3d6eb2fbbdecd0d5dffb3d709b9b91.
|
|
Creating some primitives allows for a scale value (via python) that will
scale the object accordingly. For objects with a radius parameter
(like cylinders, spheres, etc.) passing a scale different to (1,1,1)
would result in unexpected behavior.
For example:
`>>> bpy.ops.mesh.primitive_uv_sphere_add(radius=2, scale=(1,1,2))`
We would expect this to create a sphere with a radius of 2
(dimensions 4,4,4) and then be scaled *2 along the z-axis
(dimensions 4,4,8). But this would previously create a scaled sphere
with dimensions (2,2,4).
The scale was simply divided by two. Maybe because the "radius"
parameter for creating the primitives was confusingly named "diameter"
(but used as the radius).
The fix adds a scale parameter to `ED_object_new_primitive_matrix`
and also renames the wrongly named "diameter" parameters to "radius".
Reviewed By: campbellbarton
Maniphest Tasks: T84638
Ref D10093
|
|
|
|
Follow the same logic already used by the modifier.
|
|
Also remove redundant fabsf on the area of a quad/tri &
reduce indentation using continue in for loop.
|
|
Only vertex indices were ensured to be correct.
|
|
Vertices with no connected faces would attempt to divide by the combined
face area causing a divide by zero.
Use the same weight for wire vertices as vertices connected
to zero area faces.
|
|
|
|
This shows the text as part of the assertion message.
|
|
|
|
Reserve the term count for values that require calculation
(typically linked lists).
|
|
Using BMesh operators through the edit-mesh API created a full copy
of the mesh so it was possible to restore the mesh in case
one of the operators raised an error.
Remove support for automatic backup/restore from the EDBM_op_* API's
as it adds significant overhead and was rarely used.
Operators that need this can use the BMBackup API to backup & restore
the mesh in case of failure.
Add warning levels to BMO_error_raise so operators can report problems
without it being interpreted as a request to cancel the operation.
For high-poly meshes creating and freeing a full copy is an expensive
operation, removing this gives a speedup of ~1.77x for most operators
except for "connect_verts" / "connect_vert_pair"
which still uses this functionality.
|
|
Previously, any face groups that could not be merged into a face
caused the entire operation to report an error and do nothing.
Now these cases are skipped over, dissolving faces where possible.
|
|
- Only create arrays with groups of two or more faces.
- Remove raising exception for zero length arrays.
- Remove redundant exception check (assert there is no exception).
- Use a struct for face array & it's length instead of a NULL
terminated array (removes the need to count faces in a loop).
|
|
Also use doxy style function reference `#` prefix chars when
referencing identifiers.
|
|
|
|
|
|
The error codes could be used to look up messages from a table
of messages however this wasn't especially useful.
Now all calls to BMO_error_raise must inclue a message.
|
|
|
|
|
|
|
|
The "extrude" operator with the "use_dissolve_ortho_edges" option assumed
the edges were connected.
|
|
|
|
This patch fixes many minor spelling mistakes, all in comments or
console output. Mostly contractions like can't, won't, don't, its/it's,
etc.
Differential Revision: https://developer.blender.org/D11663
Reviewed by Harley Acheson
|
|
|
|
Incrementing a floating point value in a loop resulted in the vertex
locations for circles in primitives being slightly asymmetric.
|
|
|
|
|
|
Add argument to BM_vert_collapse_faces to remove any faces that become
duplicate as result of the collapse.
|
|
|
|
|
|
Changes to increase subdivision by one along both axis (X and Y)
For example with x_segment = 3 and y_segment = 3.
There should be 16 vertices ((3 + 1) * (3 + 1)) for correct
number of subdivisions. Currently they are 3 * 3 = 9 vertices.
Ref D10699
|
|
|
|
These were flipped since their introduction in rBa070a5befa11.
Maniphest Tasks: T85753
Differential Revision: https://developer.blender.org/D10465
|
|
|
|
|
|
|
|
Currently unused, needed for symmetrize to support shape keys.
|
|
|
|
Checks for merging vertices assumed all the geometry was being mirrored.
|
|
|
|
Add an optional callback to check source/destination loops for
BM_mesh_calc_face_groups.
This is needed so it can be used to calculate UV islands.
|
|
|
|
The skin modifier did not output consistent results, causing failure to find
corresponding vertices across frames.
Remove unnecessary use of GSet, all we need is an array.
|
|
Use common prefix as this collided with existing API's (eg BLI_voronoi).
Also expand some non-obvious abbreviations:
- 'g' -> 'generic'
- 'vl' -> 'variable_lacunarity'
- 'V' -> 'v3'
|
|
Follow our code style for doxygen sections.
|
|
Corrects incorrect usages of the word 'loose' when 'lose' was required.
Differential Revision: https://developer.blender.org/D9243
Reviewed by Campbell Barton
|
|
Corrects incorrect usages of the words 'then' and 'than'.
Differential Revision: https://developer.blender.org/D9246
Reviewed by Campbell Barton
|
|
Corrects incorrect usage of contraction for 'it is', when possessive 'its' was required.
Differential Revision: https://developer.blender.org/D9250
Reviewed by Campbell Barton
|