GSoC 2019: Bevel Profiles Weekly Reports

Week 6

(Week 6 Daily Log)

More Vertex Mesh Progress

(8f2861c215c2)
There was a lot of discussion about vertex mesh creation in DevTalk this week. The takeaway is that I will be targeting two options for this summer: The grid fill method with the existing bevel operator’s ADJ pattern, and the cut-off method which will generate a flat plane at the end of each profile. A boolean option would be ideal, but probably too large of an undertaking for the remaining time in the summer.

This week I mostly finished up the grid fill / ADJ pattern method.

Curved Profile Widget Sampling

(625a3a113a68)
Also after a lot of discussion on DevTalk, I added the ability to sample along the profile with any number of points. For the table that’s used for the widget’s display it samples at 256 segments, and for the bevel profile it samples at the input number of segments.
Screenshot%20from%202019-07-06%2000-40-03
The same code also samples the bevel profile points:
Screenshot%20from%202019-07-06%2000-45-51
It still needs an option to turn off the sampling of straight edges, but it’s almost there, and it saves a lot of time vs. placing points manually.

Saving and Loading and Memory Leak Fixes

(aa48aca0a7e3)
I spent a while cleaning up the DNA structs which store the permanent information for the Profile Widget. In the process I fixed the memory leaks I had introduced the the modifier and the process of saving and loading bevel modifiers with custom profiles. It’s now much more viable to use / test the branch.

Initial Work Towards Custom Profiles in Bevel Tool

It’s an ongoing process, but I made some initial progress towards getting the profile widget in the tool options. I would like the widget to be in the redo panel with the other bevel tool options, but that is proving harder than I expected; I don’t think the redo panel was designed to support that.

Next Week

I’m getting to the point where I can keep track of the rest of my goals for the summer on a relatively short(er) list. So I’ll be working on some combination of these tasks:

  1. Get the profile widget into the bevel tool menu. I need to figure out how to draw in the redo menu or connect the tool menu to the redo menu call.
  2. Cut-off vertex mesh method. The second method as an option for >2-way beveled edge intersections.
  3. Fix profile orientation next to impassable BevVerts. Just a bug that I think might take a bit of time to fix.
  4. Add “harden normals” functionality. Set custom normals for the profile faces using the curvature of the profile.
  5. Fix miter profiles. The miters should still use a normal profile, not a custom one.
  6. Finish RNA API for profile widget. This isn’t strictly necessary for this project, but I shouldn’t add the profile widget without finishing its API.
  7. Documentation and cleanup.
13 Likes