public static FA Difference(FA dfa1, FA dfa2) { return(CrossBuilder.Build(dfa1, dfa2, (s1, s2) => s1.Final && !s2.Final)); }
public static FA Intersect(FA dfa1, FA dfa2) { return(CrossBuilder.Build(dfa1, dfa2, (s1, s2) => s1.Final && s2.Final)); }
public static FA Union(FA dfa1, FA dfa2) { return(CrossBuilder.Build(dfa1, dfa2, (s1, s2) => s1.Final || s2.Final)); }
public override MeshBuilder Build() { return(CrossBuilder.Build(this)); }
public override void Build(Vector3i localPos, Vector3i worldPos, Map map, MeshBuilder mesh, bool onlyLight) { CrossBuilder.Build(localPos, worldPos, map, mesh, onlyLight); }
public static FA Substract(FA dfa1, FA dfa2) { return(CrossBuilder.Build(dfa1, dfa2, (s1, s2) => s1.IsFinal && !s2.IsFinal)); }