Fixed some inconsistency on user interaction:
- Chamfer and fillet only enter modal when the selected handle is vector type
- Commented all the tools implemented from the Specials menu. They were not being called on modal.
If this has not yet been committed:
- Fixed some bugs with the fillet and chamfer operators (filleting and chamfering first and last handles).
- Fixed user interaction with fillet and chamfer.
The modal operators for the fillet and chamfer operators are now 90% complete.
On the chamfer operator, an option is needed to handle angle numinput. It would also be nice to have some sort of circular input for the angle (currently it is linked to the x variation of the cursor position).
For fillet, there is some kind of bug that corrupts curve data.
Due to the above mentioned reasons, modal operators are still commented.
Offset operator: Fixed it to work with vector and free handles.
Chamfer: The operator now preserves all settings from the handles it is modifying (radius, tilt, weight, handle type, etc...).
Added support to fillet and chamfer cyclic splines.
Occasionaly, with no apparent reason, the following assertion fails
blender-build/blender/source/blender/blenlib/intern/BLI_ghash.c:458, ghash_insert_ex(), at '(gh->flag & GHASH_FLAG_ALLOW_DUPES) || (BLI_ghash_haskey(gh, key) == 0)
Fixed a calculation error in the fillet operator. Limited the chamfer algorithm to just run on the points inbetween the first and the last handles, since it makes no sense to chamfer the start of a line. This brings a problem with cyclic splines though, which will be addressed in a later commit.
Added interface options to call all operators. They are available on the tool shelf, under Curve Tools->Modelling, and on the Edit Curve Specials menu.
Added support for collinear handles and cyclic splines.
Changed the way offset direction is corrected. Previously, the code checked for intersections between the offset spline and the original one. I replaced this with vector calculus.
Fixed a bug in the Extend operator. Refactored the Extend operator. Refactored the Batch Extend operator to make use of the existing Extend operator.
Started working on a fix for collinear handles on the offset operator. Current changes are ineffective.
Fully implemented the modal operator for the offset tool. Also fixed a few bugs.There is still a bug when calculating the correct offset direction. If the distance is sufficiently high, or if the curve is too tight on a few places, the reverse_offset function returns true even though that is not what we want. Passing in a different BezTriple offset by a precision distance (such as 10e-5) should fix it, though attempts at this have proved unsuccessful.
Regarding editmesh_bevel.c, fixed a trailing whitespace that I found by chance.
Fixed the radius = 0 bug, which resulted in no bevel. Canged the way the new BezTriples were filled in, in order to preserve all the previous properties.
Implemented a fillet operator. This operator is everything but mathematically correct (to get a radius 1 fillet, you need to input radius 1.73; endpoints do not match), but it achieves a nice visual result.
Commented out the mouse functionality. Code for handling keyboard input needs to be added. Once it is added, the invoke and modal functions are ready to go.
Fixed a bug with memory that was generating wrong results.
This commit also contains some of the code for the Trim tool, though most of it is commented out.
This commit contains part of the foundations for the Bezier curve Extend operator. This implementation is based on an addon created previously by a Blender user.
Some of the implemented functions may have use outside of the scope of the Extend operator. Therefore, they may be relocated and renamed in a future commit.
After implementing the changes suggested, backwards compatibility was broken. In order to fix that, the whole feature had to be reimplemented, replacing the symmetric extrusion option (which has been the default until now in Blender) with an unidirectional extrude one.
This commit incorporates the changes that were suggested in Revision D2017.
The code was made clearer (unnecessary negations were removed) and whitespace was fixed.
This commit was amended to due to some whitespace being left behind.
This patch attempts to solve the issues with D1841.
Category: Improved Bezier Curve Extrusion
This feature allows the user to have more control over the extrusion of Bezier
curves. This is done by making possible unidirectional extrusion.
On a code level, the curve.c file in blenkernel was modified to take into
account these options while generating the extruded object.
The feature stops working with non-zero bevel.
Merge remote-tracking branch 'origin/master' into gsoc2016-improved_extrusion
Category: Improved Bezier curve extrusion with non-zero bevel
On a previous commit, the Bezier curve extrusion was improved. However, when
non-zero bevel values were set, the new extrusion options stopped having effect.
This commit fixes that.
On a code level, the code used for extrusion and for bevel is a duplicate.
On the first commit only the extrusion code was modified. On this commit,
the bevel code was modified in the same way, to take into account the improved
extrusion options.
Differential Revision: https://developer.blender.org/D2017
This feature allows the user to have more control over the extrusion of Bezier
curves. This is done by making possible unidirectional extrusion.
On a code level, the curve.c file in blenkernel was modified to take into
account these options while generating the extruded object.
The feature stops working with non-zero bevel.
2016-05-19 11:00:10 +01:00
11 changed files with 2589 additions and 13 deletions
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.