The Mesh-Editing Mode in Shapeflow3D finally comes to live! This is a major breakthrough that required a lot of work under the hood but opens up a lot of possibilities. Let me explain:
The low-level mesh editing data structures inside the Core SDK have been working reliabily for years now. They are the basis of all the file import code, the NURBS tessellator, the render API abstractions, and more. However, Shapeflow up to this point has been primarily focused on working on the assembly level, so working on whole nodes/bodies in a larger file.
A while ago, I introduced the notion of workflow modes to the Core SDK. Think of them as steps in your process from a raw CAD file/assembly to a final render or final export. Initially, your work will typically be primarily about loading and arranging a multitude of part files, tessellating the whole scene, removing unwanted parts etc. At another point, you will want to assign materials, yet another do animations, and so forth. Each of these steps is represented by a Mode that offers a special set of Operations (= tools) to the user. The B-Rep Mode for example allows removing whole NURBS surfaces inside a body.
The Mesh mode is when you want to dive into an individual body and do modifications on the triangle/quad level. Think of it like having a CAD-oriented data prep application with a whole, full-fledged mesh modelling program inside of it. The great thing is that this concept of modes allows the user to switch between them at will. The same NURBS-body can – at the same time – be worked on as either a node in a large assembly, a B-Rep body, or a Mesh, depending on what your needs are.
Being able to do this required a lot of ground work though. Keep in mind that the underlying Core SDK supports not only a multitude of platforms and input device but also multi-view (think quad-split-view or VR-style side-by-side-view) as well as multi-display render layouts. And all of the code is completely render API agnostic (e.g. it does not care if it is using Apple’s Metal, DirectX, Vulkan or OpenGL for rendering). So getting the simple act of moving a vertex (and showing the help geometry in form of a 3D Gizmo) to work meant getting a very powerful, abstract Operation concept to work. It is therefore a huge milestone!
Not only that, the Mesh mode supports multi-body editing. So the user can select multiple vertices from different meshes and move them as one set. Similarly, in Assembly mode, the user can select multiple nodes from completely different parts in the hierarchy and move them as one. The Core SDK will automatically calculate the individual transformations needed for each body so they move as one.
Exciting times are ahead!