This is the code for the paper
Palmer, David, Oded Stein, and Justin Solomon. "Frame Field Operators." SGP 2021, online.
This code depends on
Generally, you should first load a mesh data structure
% In 2D using gptoolbox:
[verts, faces] = load_mesh('path/to/mesh.obj');
meshData = ProcessMesh2D(verts, faces);
% In 3D using ARFF:
meshData = ImportMesh('path/to/mesh.mesh');
before generating a frame field and its operator:
% In 2D:
z4 = MBO2D(meshData);
[~, Tij] = Frame2Tensor2D(meshData, z4, ellipticity);
[Op, M] = FFOp2D(meshData, Tij, neumann);
% In 3D:
q = MBO(meshData, RayMBO);
octa = OctaMBO;
q = octa.proj(q);
[Op, M] = FFOp3D(meshData, q, ellipticity, neumann);
Various figure-generating experiments from the paper can be found in experiments/
.