Change to fixed points and edges in msh class
Currently the msh class contains fixed points (m.pfix) and fixed edges (m.egfix) variables. m.pfix variables are just coordinates that presumably also exist in the main mesh point space (m.p). And m.edgfix refer to indices of m.pfix.
This is a somewhat clumsy way of treating fixed points and edges which makes it a bit annoying to manage them, and may require us to do a knnsearch to find the indices that match between m.p and m.pfix. For the meshgen it makes sense that we pass fixed points coordinates, but as an output into the msh class, the fixed points should just refer to indices in m.p.
I propose that we eliminate m.pfix and only keep m.egfix which should just be indices of m.p. That way we can also use the m.egfix in the constraints option for the DelaunayTriangulation class directly as is. m.pfix can be trivially recovered by m.p(unique(m.egfix(:)),:). This change will require us to treat the fixed points differently in the cleaning and merging routines etc, but it will be much neater imo.
Also, I realize that there may be instances where there were no fixed edges and only fixed points at the meshgen stage. I suppose in this situation we can just repeat the node number across the fixed edge bar (i.e., egfix(:,1) = egfix(:,2)), to flag that the edges are not in fact fixed.
Overall, it's a good idea to make things more concise.
Perhaps we can make a method called msh.getPfix() which does this m.p(unique(m.egfix(:)),:).
Everywhere we see pfix, we can call this method prior to create a local variable. This way the algorithms are minimally effected.
And rename egfix and pfix to constraints collectively.