bevy_copperfield 0.2.2

Procedural mesh editor, based on Half-Edge-Mesh datastructure
Documentation

running 1 test

***new_face: FaceId(1v1) - [VertexId(1v1), VertexId(2v1), VertexId(3v1), VertexId(4v1)]


Connecting VertexId(1v1) to VertexId(2v1). Edges:
	VertexId(1v1): None
	VertexId(2v1): None
	No vertices have boundary edges.
***
HERE
***
Detected face-edge.next to be HalfEdgeId(4294967295v1) from VertexId(1v1) and boundary-edge.next to be HalfEdgeId(4294967295v1) fom VertexId(2v1)
Created face-edge HalfEdgeId(1v1) with .next = HalfEdgeId(4294967295v1) and boundary-edge HalfEdgeId(2v1) with .next = HalfEdgeId(4294967295v1)
Updated outgoing edges:
	VertexId(1v1): Some([HalfEdgeId(1v1)])
	VertexId(2v1): Some([HalfEdgeId(2v1)])

Connecting VertexId(2v1) to VertexId(3v1). Edges:
	VertexId(2v1): Some([HalfEdgeId(2v1)])
	VertexId(3v1): None
	Only start VertexId(2v1) has boundary edge.
Detected face-edge.next to be HalfEdgeId(4294967295v1) from VertexId(2v1) and boundary-edge.next to be HalfEdgeId(2v1) fom VertexId(3v1)
Created face-edge HalfEdgeId(3v1) with .next = HalfEdgeId(4294967295v1) and boundary-edge HalfEdgeId(4v1) with .next = HalfEdgeId(2v1)
Updated outgoing edges:
	VertexId(2v1): Some([HalfEdgeId(2v1), HalfEdgeId(3v1)])
	VertexId(3v1): Some([HalfEdgeId(4v1)])
Detected previously existing boundary_edge_next: HalfEdgeId(2v1)
Fixing HalfEdgeId(1v1).next to be HalfEdgeId(3v1)

Connecting VertexId(3v1) to VertexId(4v1). Edges:
	VertexId(3v1): Some([HalfEdgeId(4v1)])
	VertexId(4v1): None
	Only start VertexId(3v1) has boundary edge.
	 - Loop faces are:edge:HalfEdgeId(2v1) face:None
Detected face-edge.next to be HalfEdgeId(4294967295v1) from VertexId(3v1) and boundary-edge.next to be HalfEdgeId(4v1) fom VertexId(4v1)
Created face-edge HalfEdgeId(5v1) with .next = HalfEdgeId(4294967295v1) and boundary-edge HalfEdgeId(6v1) with .next = HalfEdgeId(4v1)
Updated outgoing edges:
	VertexId(3v1): Some([HalfEdgeId(4v1), HalfEdgeId(5v1)])
	VertexId(4v1): Some([HalfEdgeId(6v1)])
Detected previously existing boundary_edge_next: HalfEdgeId(4v1)
Fixing HalfEdgeId(3v1).next to be HalfEdgeId(5v1)

Connecting VertexId(4v1) to VertexId(1v1). Edges:
	VertexId(4v1): Some([HalfEdgeId(6v1)])
	VertexId(1v1): Some([HalfEdgeId(1v1)])
	Only start VertexId(4v1) has boundary edge.
	 - Loop faces are:edge:HalfEdgeId(4v1) face:None
	 - Loop faces are:edge:HalfEdgeId(2v1) face:None
	 - Checking HalfEdgeId(1v1).face = Some(FaceId(1v1))
Detected face-edge.next to be HalfEdgeId(1v1) from VertexId(4v1) and boundary-edge.next to be HalfEdgeId(6v1) fom VertexId(1v1)
Created face-edge HalfEdgeId(7v1) with .next = HalfEdgeId(1v1) and boundary-edge HalfEdgeId(8v1) with .next = HalfEdgeId(6v1)
Updated outgoing edges:
	VertexId(4v1): Some([HalfEdgeId(6v1), HalfEdgeId(7v1)])
	VertexId(1v1): Some([HalfEdgeId(1v1), HalfEdgeId(8v1)])
Detected previously existing face_edge_next: HalfEdgeId(1v1)
Fixing HalfEdgeId(2v1).next to be HalfEdgeId(8v1)
Detected previously existing boundary_edge_next: HalfEdgeId(6v1)
Fixing HalfEdgeId(5v1).next to be HalfEdgeId(7v1)
Mesh:
	VertexId(1v1) -> HalfEdgeId(1v1)
	VertexId(2v1) -> HalfEdgeId(3v1)
	VertexId(3v1) -> HalfEdgeId(5v1)
	VertexId(4v1) -> HalfEdgeId(7v1)
	FaceId(1v1) -> HalfEdgeId(7v1)
	HalfEdgeId(1v1) -> twin:HalfEdgeId(2v1) next:HalfEdgeId(3v1) VertexId(1v1) Some(FaceId(1v1))
	HalfEdgeId(2v1) -> twin:HalfEdgeId(1v1) next:HalfEdgeId(8v1) VertexId(2v1) None
	HalfEdgeId(3v1) -> twin:HalfEdgeId(4v1) next:HalfEdgeId(5v1) VertexId(2v1) Some(FaceId(1v1))
	HalfEdgeId(4v1) -> twin:HalfEdgeId(3v1) next:HalfEdgeId(2v1) VertexId(3v1) None
	HalfEdgeId(5v1) -> twin:HalfEdgeId(6v1) next:HalfEdgeId(7v1) VertexId(3v1) Some(FaceId(1v1))
	HalfEdgeId(6v1) -> twin:HalfEdgeId(5v1) next:HalfEdgeId(4v1) VertexId(4v1) None
	HalfEdgeId(7v1) -> twin:HalfEdgeId(8v1) next:HalfEdgeId(1v1) VertexId(4v1) Some(FaceId(1v1))
	HalfEdgeId(8v1) -> twin:HalfEdgeId(7v1) next:HalfEdgeId(6v1) VertexId(1v1) None

***new_face: FaceId(2v1) - [VertexId(5v1), VertexId(6v1), VertexId(7v1), VertexId(8v1)]

VertexId(5v1) outgoing_edges are []

Connecting VertexId(5v1) to VertexId(6v1). Edges:
	VertexId(5v1): None
	VertexId(6v1): None
	No vertices have boundary edges.
***
HERE
***
Detected face-edge.next to be HalfEdgeId(4294967295v1) from VertexId(5v1) and boundary-edge.next to be HalfEdgeId(4294967295v1) fom VertexId(6v1)
Created face-edge HalfEdgeId(9v1) with .next = HalfEdgeId(4294967295v1) and boundary-edge HalfEdgeId(10v1) with .next = HalfEdgeId(4294967295v1)
Updated outgoing edges:
	VertexId(5v1): Some([HalfEdgeId(9v1)])
	VertexId(6v1): Some([HalfEdgeId(10v1)])

Connecting VertexId(6v1) to VertexId(7v1). Edges:
	VertexId(6v1): Some([HalfEdgeId(10v1)])
	VertexId(7v1): None
	Only start VertexId(6v1) has boundary edge.
Detected face-edge.next to be HalfEdgeId(4294967295v1) from VertexId(6v1) and boundary-edge.next to be HalfEdgeId(10v1) fom VertexId(7v1)
Created face-edge HalfEdgeId(11v1) with .next = HalfEdgeId(4294967295v1) and boundary-edge HalfEdgeId(12v1) with .next = HalfEdgeId(10v1)
Updated outgoing edges:
	VertexId(6v1): Some([HalfEdgeId(10v1), HalfEdgeId(11v1)])
	VertexId(7v1): Some([HalfEdgeId(12v1)])
Detected previously existing boundary_edge_next: HalfEdgeId(10v1)
Fixing HalfEdgeId(9v1).next to be HalfEdgeId(11v1)

Connecting VertexId(7v1) to VertexId(8v1). Edges:
	VertexId(7v1): Some([HalfEdgeId(12v1)])
	VertexId(8v1): None
	Only start VertexId(7v1) has boundary edge.
	 - Loop faces are:edge:HalfEdgeId(10v1) face:None
Detected face-edge.next to be HalfEdgeId(4294967295v1) from VertexId(7v1) and boundary-edge.next to be HalfEdgeId(12v1) fom VertexId(8v1)
Created face-edge HalfEdgeId(13v1) with .next = HalfEdgeId(4294967295v1) and boundary-edge HalfEdgeId(14v1) with .next = HalfEdgeId(12v1)
Updated outgoing edges:
	VertexId(7v1): Some([HalfEdgeId(12v1), HalfEdgeId(13v1)])
	VertexId(8v1): Some([HalfEdgeId(14v1)])
Detected previously existing boundary_edge_next: HalfEdgeId(12v1)
Fixing HalfEdgeId(11v1).next to be HalfEdgeId(13v1)

Connecting VertexId(8v1) to VertexId(5v1). Edges:
	VertexId(8v1): Some([HalfEdgeId(14v1)])
	VertexId(5v1): Some([HalfEdgeId(9v1)])
	Only start VertexId(8v1) has boundary edge.
	 - Loop faces are:edge:HalfEdgeId(12v1) face:None
	 - Loop faces are:edge:HalfEdgeId(10v1) face:None
	 - Checking HalfEdgeId(9v1).face = Some(FaceId(2v1))
Detected face-edge.next to be HalfEdgeId(9v1) from VertexId(8v1) and boundary-edge.next to be HalfEdgeId(14v1) fom VertexId(5v1)
Created face-edge HalfEdgeId(15v1) with .next = HalfEdgeId(9v1) and boundary-edge HalfEdgeId(16v1) with .next = HalfEdgeId(14v1)
Updated outgoing edges:
	VertexId(8v1): Some([HalfEdgeId(14v1), HalfEdgeId(15v1)])
	VertexId(5v1): Some([HalfEdgeId(9v1), HalfEdgeId(16v1)])
Detected previously existing face_edge_next: HalfEdgeId(9v1)
Fixing HalfEdgeId(10v1).next to be HalfEdgeId(16v1)
Detected previously existing boundary_edge_next: HalfEdgeId(14v1)
Fixing HalfEdgeId(13v1).next to be HalfEdgeId(15v1)
Mesh:
	VertexId(1v1) -> HalfEdgeId(1v1)
	VertexId(2v1) -> HalfEdgeId(3v1)
	VertexId(3v1) -> HalfEdgeId(5v1)
	VertexId(4v1) -> HalfEdgeId(7v1)
	VertexId(5v1) -> HalfEdgeId(9v1)
	VertexId(6v1) -> HalfEdgeId(11v1)
	VertexId(7v1) -> HalfEdgeId(13v1)
	VertexId(8v1) -> HalfEdgeId(15v1)
	FaceId(1v1) -> HalfEdgeId(7v1)
	FaceId(2v1) -> HalfEdgeId(15v1)
	HalfEdgeId(1v1) -> twin:HalfEdgeId(2v1) next:HalfEdgeId(3v1) VertexId(1v1) Some(FaceId(1v1))
	HalfEdgeId(2v1) -> twin:HalfEdgeId(1v1) next:HalfEdgeId(8v1) VertexId(2v1) None
	HalfEdgeId(3v1) -> twin:HalfEdgeId(4v1) next:HalfEdgeId(5v1) VertexId(2v1) Some(FaceId(1v1))
	HalfEdgeId(4v1) -> twin:HalfEdgeId(3v1) next:HalfEdgeId(2v1) VertexId(3v1) None
	HalfEdgeId(5v1) -> twin:HalfEdgeId(6v1) next:HalfEdgeId(7v1) VertexId(3v1) Some(FaceId(1v1))
	HalfEdgeId(6v1) -> twin:HalfEdgeId(5v1) next:HalfEdgeId(4v1) VertexId(4v1) None
	HalfEdgeId(7v1) -> twin:HalfEdgeId(8v1) next:HalfEdgeId(1v1) VertexId(4v1) Some(FaceId(1v1))
	HalfEdgeId(8v1) -> twin:HalfEdgeId(7v1) next:HalfEdgeId(6v1) VertexId(1v1) None
	HalfEdgeId(9v1) -> twin:HalfEdgeId(10v1) next:HalfEdgeId(11v1) VertexId(5v1) Some(FaceId(2v1))
	HalfEdgeId(10v1) -> twin:HalfEdgeId(9v1) next:HalfEdgeId(16v1) VertexId(6v1) None
	HalfEdgeId(11v1) -> twin:HalfEdgeId(12v1) next:HalfEdgeId(13v1) VertexId(6v1) Some(FaceId(2v1))
	HalfEdgeId(12v1) -> twin:HalfEdgeId(11v1) next:HalfEdgeId(10v1) VertexId(7v1) None
	HalfEdgeId(13v1) -> twin:HalfEdgeId(14v1) next:HalfEdgeId(15v1) VertexId(7v1) Some(FaceId(2v1))
	HalfEdgeId(14v1) -> twin:HalfEdgeId(13v1) next:HalfEdgeId(12v1) VertexId(8v1) None
	HalfEdgeId(15v1) -> twin:HalfEdgeId(16v1) next:HalfEdgeId(9v1) VertexId(8v1) Some(FaceId(2v1))
	HalfEdgeId(16v1) -> twin:HalfEdgeId(15v1) next:HalfEdgeId(14v1) VertexId(5v1) None

***new_face: FaceId(3v1) - [VertexId(5v1), VertexId(8v1), VertexId(2v1), VertexId(1v1)]

VertexId(5v1) outgoing_edges are [HalfEdgeId(9v1), HalfEdgeId(16v1)]

Connecting VertexId(5v1) to VertexId(8v1). Edges:
	VertexId(5v1): Some([HalfEdgeId(9v1), HalfEdgeId(16v1)])
	VertexId(8v1): Some([HalfEdgeId(15v1), HalfEdgeId(14v1)])
	Both vertices have boundary_edges: VertexId(5v1) has HalfEdgeId(16v1) and VertexId(8v1) has HalfEdgeId(14v1)
		VertexId(5v1) and VertexId(8v1) are already connected. HalfEdgeId(16v1).next points to HalfEdgeId(14v1)

Connecting VertexId(8v1) to VertexId(2v1). Edges:
	VertexId(8v1): Some([HalfEdgeId(15v1), HalfEdgeId(14v1)])
	VertexId(2v1): Some([HalfEdgeId(3v1), HalfEdgeId(2v1)])
	Both vertices have boundary_edges: VertexId(8v1) has HalfEdgeId(14v1) and VertexId(2v1) has HalfEdgeId(2v1)
		We are adding last or parallel edge between VertexId(8v1) and VertexId(2v1)
Detected face-edge.next to be HalfEdgeId(2v1) from VertexId(8v1) and boundary-edge.next to be HalfEdgeId(14v1) fom VertexId(2v1)
Created face-edge HalfEdgeId(17v1) with .next = HalfEdgeId(2v1) and boundary-edge HalfEdgeId(18v1) with .next = HalfEdgeId(14v1)
Updated outgoing edges:
	VertexId(8v1): Some([HalfEdgeId(15v1), HalfEdgeId(14v1), HalfEdgeId(17v1)])
	VertexId(2v1): Some([HalfEdgeId(3v1), HalfEdgeId(2v1), HalfEdgeId(18v1)])
Detected previously existing face_edge_next: HalfEdgeId(2v1)
Fixing HalfEdgeId(4v1).next to be HalfEdgeId(18v1)
Detected previously existing boundary_edge_next: HalfEdgeId(14v1)
Fixing HalfEdgeId(16v1).next to be HalfEdgeId(17v1)

Connecting VertexId(2v1) to VertexId(1v1). Edges:
	VertexId(2v1): Some([HalfEdgeId(3v1), HalfEdgeId(2v1), HalfEdgeId(18v1)])
	VertexId(1v1): Some([HalfEdgeId(1v1), HalfEdgeId(8v1)])
	Both vertices have boundary_edges: VertexId(2v1) has HalfEdgeId(2v1) and VertexId(1v1) has HalfEdgeId(8v1)
		VertexId(2v1) and VertexId(1v1) are already connected. HalfEdgeId(2v1).next points to HalfEdgeId(8v1)

Connecting VertexId(1v1) to VertexId(5v1). Edges:
	VertexId(1v1): Some([HalfEdgeId(1v1), HalfEdgeId(8v1)])
	VertexId(5v1): Some([HalfEdgeId(9v1), HalfEdgeId(16v1)])
	Only start VertexId(1v1) has boundary edge.
	 - Loop faces are:edge:HalfEdgeId(6v1) face:None
	 - Loop faces are:edge:HalfEdgeId(4v1) face:None
	 - Loop faces are:edge:HalfEdgeId(18v1) face:None
	 - Loop faces are:edge:HalfEdgeId(14v1) face:None
	 - Loop faces are:edge:HalfEdgeId(12v1) face:None
	 - Loop faces are:edge:HalfEdgeId(10v1) face:None
	 - Loop faces are:edge:HalfEdgeId(16v1) face:Some(FaceId(3v1))
	 - Loop faces are:edge:HalfEdgeId(17v1) face:Some(FaceId(3v1))
	 - Loop faces are:edge:HalfEdgeId(2v1) face:Some(FaceId(3v1))
Conditions may be right to patch a face
Detected face-edge.next to be HalfEdgeId(4294967295v1) from VertexId(1v1) and boundary-edge.next to be HalfEdgeId(8v1) fom VertexId(5v1)
Created face-edge HalfEdgeId(19v1) with .next = HalfEdgeId(4294967295v1) and boundary-edge HalfEdgeId(20v1) with .next = HalfEdgeId(8v1)
Updated outgoing edges:
	VertexId(1v1): Some([HalfEdgeId(1v1), HalfEdgeId(8v1), HalfEdgeId(19v1)])
	VertexId(5v1): Some([HalfEdgeId(9v1), HalfEdgeId(16v1), HalfEdgeId(20v1)])
Detected previously existing boundary_edge_next: HalfEdgeId(8v1)
Fixing HalfEdgeId(2v1).next to be HalfEdgeId(19v1)
Mesh:
	VertexId(1v1) -> HalfEdgeId(19v1)
	VertexId(2v1) -> HalfEdgeId(3v1)
	VertexId(3v1) -> HalfEdgeId(5v1)
	VertexId(4v1) -> HalfEdgeId(7v1)
	VertexId(5v1) -> HalfEdgeId(9v1)
	VertexId(6v1) -> HalfEdgeId(11v1)
	VertexId(7v1) -> HalfEdgeId(13v1)
	VertexId(8v1) -> HalfEdgeId(17v1)
	FaceId(1v1) -> HalfEdgeId(7v1)
	FaceId(2v1) -> HalfEdgeId(15v1)
	FaceId(3v1) -> HalfEdgeId(19v1)
	HalfEdgeId(1v1) -> twin:HalfEdgeId(2v1) next:HalfEdgeId(3v1) VertexId(1v1) Some(FaceId(1v1))
	HalfEdgeId(2v1) -> twin:HalfEdgeId(1v1) next:HalfEdgeId(19v1) VertexId(2v1) Some(FaceId(3v1))
	HalfEdgeId(3v1) -> twin:HalfEdgeId(4v1) next:HalfEdgeId(5v1) VertexId(2v1) Some(FaceId(1v1))
	HalfEdgeId(4v1) -> twin:HalfEdgeId(3v1) next:HalfEdgeId(18v1) VertexId(3v1) None
	HalfEdgeId(5v1) -> twin:HalfEdgeId(6v1) next:HalfEdgeId(7v1) VertexId(3v1) Some(FaceId(1v1))
	HalfEdgeId(6v1) -> twin:HalfEdgeId(5v1) next:HalfEdgeId(4v1) VertexId(4v1) None
	HalfEdgeId(7v1) -> twin:HalfEdgeId(8v1) next:HalfEdgeId(1v1) VertexId(4v1) Some(FaceId(1v1))
	HalfEdgeId(8v1) -> twin:HalfEdgeId(7v1) next:HalfEdgeId(6v1) VertexId(1v1) None
	HalfEdgeId(9v1) -> twin:HalfEdgeId(10v1) next:HalfEdgeId(11v1) VertexId(5v1) Some(FaceId(2v1))
	HalfEdgeId(10v1) -> twin:HalfEdgeId(9v1) next:HalfEdgeId(16v1) VertexId(6v1) None
	HalfEdgeId(11v1) -> twin:HalfEdgeId(12v1) next:HalfEdgeId(13v1) VertexId(6v1) Some(FaceId(2v1))
	HalfEdgeId(12v1) -> twin:HalfEdgeId(11v1) next:HalfEdgeId(10v1) VertexId(7v1) None
	HalfEdgeId(13v1) -> twin:HalfEdgeId(14v1) next:HalfEdgeId(15v1) VertexId(7v1) Some(FaceId(2v1))
	HalfEdgeId(14v1) -> twin:HalfEdgeId(13v1) next:HalfEdgeId(12v1) VertexId(8v1) None
	HalfEdgeId(15v1) -> twin:HalfEdgeId(16v1) next:HalfEdgeId(9v1) VertexId(8v1) Some(FaceId(2v1))
	HalfEdgeId(16v1) -> twin:HalfEdgeId(15v1) next:HalfEdgeId(17v1) VertexId(5v1) Some(FaceId(3v1))
	HalfEdgeId(17v1) -> twin:HalfEdgeId(18v1) next:HalfEdgeId(2v1) VertexId(8v1) Some(FaceId(3v1))
	HalfEdgeId(18v1) -> twin:HalfEdgeId(17v1) next:HalfEdgeId(14v1) VertexId(2v1) None
	HalfEdgeId(19v1) -> twin:HalfEdgeId(20v1) next:HalfEdgeId(4294967295v1) VertexId(1v1) Some(FaceId(3v1))
	HalfEdgeId(20v1) -> twin:HalfEdgeId(19v1) next:HalfEdgeId(8v1) VertexId(5v1) None

***new_face: FaceId(4v1) - [VertexId(4v1), VertexId(3v1), VertexId(7v1), VertexId(6v1)]


Connecting VertexId(4v1) to VertexId(3v1). Edges:
	VertexId(4v1): Some([HalfEdgeId(7v1), HalfEdgeId(6v1)])
	VertexId(3v1): Some([HalfEdgeId(5v1), HalfEdgeId(4v1)])
	Both vertices have boundary_edges: VertexId(4v1) has HalfEdgeId(6v1) and VertexId(3v1) has HalfEdgeId(4v1)
		VertexId(4v1) and VertexId(3v1) are already connected. HalfEdgeId(6v1).next points to HalfEdgeId(4v1)

Connecting VertexId(3v1) to VertexId(7v1). Edges:
	VertexId(3v1): Some([HalfEdgeId(5v1), HalfEdgeId(4v1)])
	VertexId(7v1): Some([HalfEdgeId(13v1), HalfEdgeId(12v1)])
	Both vertices have boundary_edges: VertexId(3v1) has HalfEdgeId(4v1) and VertexId(7v1) has HalfEdgeId(12v1)
		We are adding last or parallel edge between VertexId(3v1) and VertexId(7v1) (reversed).
Detected face-edge.next to be HalfEdgeId(12v1) from VertexId(3v1) and boundary-edge.next to be HalfEdgeId(4v1) fom VertexId(7v1)
Created face-edge HalfEdgeId(21v1) with .next = HalfEdgeId(12v1) and boundary-edge HalfEdgeId(22v1) with .next = HalfEdgeId(4v1)
Updated outgoing edges:
	VertexId(3v1): Some([HalfEdgeId(5v1), HalfEdgeId(4v1), HalfEdgeId(21v1)])
	VertexId(7v1): Some([HalfEdgeId(13v1), HalfEdgeId(12v1), HalfEdgeId(22v1)])
Detected previously existing face_edge_next: HalfEdgeId(12v1)
Fixing HalfEdgeId(14v1).next to be HalfEdgeId(22v1)
Detected previously existing boundary_edge_next: HalfEdgeId(4v1)
Fixing HalfEdgeId(6v1).next to be HalfEdgeId(21v1)

Connecting VertexId(7v1) to VertexId(6v1). Edges:
	VertexId(7v1): Some([HalfEdgeId(13v1), HalfEdgeId(12v1), HalfEdgeId(22v1)])
	VertexId(6v1): Some([HalfEdgeId(11v1), HalfEdgeId(10v1)])
	Both vertices have boundary_edges: VertexId(7v1) has HalfEdgeId(12v1) and VertexId(6v1) has HalfEdgeId(10v1)
		VertexId(7v1) and VertexId(6v1) are already connected. HalfEdgeId(12v1).next points to HalfEdgeId(10v1)

Connecting VertexId(6v1) to VertexId(4v1). Edges:
	VertexId(6v1): Some([HalfEdgeId(11v1), HalfEdgeId(10v1)])
	VertexId(4v1): Some([HalfEdgeId(7v1), HalfEdgeId(6v1)])
	Only start VertexId(6v1) has boundary edge.
	 - Loop faces are:edge:HalfEdgeId(16v1) face:Some(FaceId(3v1))
	 - Loop faces are:edge:HalfEdgeId(17v1) face:Some(FaceId(3v1))
	 - Loop faces are:edge:HalfEdgeId(2v1) face:Some(FaceId(3v1))
	 - Loop faces are:edge:HalfEdgeId(19v1) face:Some(FaceId(3v1))
	 - Checking HalfEdgeId(7v1).face = Some(FaceId(1v1))
	 - Checking HalfEdgeId(6v1).face = Some(FaceId(4v1))
Detected face-edge.next to be HalfEdgeId(6v1) from VertexId(6v1) and boundary-edge.next to be HalfEdgeId(10v1) fom VertexId(4v1)
Created face-edge HalfEdgeId(23v1) with .next = HalfEdgeId(6v1) and boundary-edge HalfEdgeId(24v1) with .next = HalfEdgeId(10v1)
Updated outgoing edges:
	VertexId(6v1): Some([HalfEdgeId(11v1), HalfEdgeId(10v1), HalfEdgeId(23v1)])
	VertexId(4v1): Some([HalfEdgeId(7v1), HalfEdgeId(6v1), HalfEdgeId(24v1)])
Detected previously existing face_edge_next: HalfEdgeId(6v1)
Fixing HalfEdgeId(8v1).next to be HalfEdgeId(24v1)
Detected previously existing boundary_edge_next: HalfEdgeId(10v1)
Fixing HalfEdgeId(12v1).next to be HalfEdgeId(23v1)
Mesh:
	VertexId(1v1) -> HalfEdgeId(19v1)
	VertexId(2v1) -> HalfEdgeId(3v1)
	VertexId(3v1) -> HalfEdgeId(21v1)
	VertexId(4v1) -> HalfEdgeId(7v1)
	VertexId(5v1) -> HalfEdgeId(9v1)
	VertexId(6v1) -> HalfEdgeId(23v1)
	VertexId(7v1) -> HalfEdgeId(13v1)
	VertexId(8v1) -> HalfEdgeId(17v1)
	FaceId(1v1) -> HalfEdgeId(7v1)
	FaceId(2v1) -> HalfEdgeId(15v1)
	FaceId(3v1) -> HalfEdgeId(19v1)
	FaceId(4v1) -> HalfEdgeId(23v1)
	HalfEdgeId(1v1) -> twin:HalfEdgeId(2v1) next:HalfEdgeId(3v1) VertexId(1v1) Some(FaceId(1v1))
	HalfEdgeId(2v1) -> twin:HalfEdgeId(1v1) next:HalfEdgeId(19v1) VertexId(2v1) Some(FaceId(3v1))
	HalfEdgeId(3v1) -> twin:HalfEdgeId(4v1) next:HalfEdgeId(5v1) VertexId(2v1) Some(FaceId(1v1))
	HalfEdgeId(4v1) -> twin:HalfEdgeId(3v1) next:HalfEdgeId(18v1) VertexId(3v1) None
	HalfEdgeId(5v1) -> twin:HalfEdgeId(6v1) next:HalfEdgeId(7v1) VertexId(3v1) Some(FaceId(1v1))
	HalfEdgeId(6v1) -> twin:HalfEdgeId(5v1) next:HalfEdgeId(21v1) VertexId(4v1) Some(FaceId(4v1))
	HalfEdgeId(7v1) -> twin:HalfEdgeId(8v1) next:HalfEdgeId(1v1) VertexId(4v1) Some(FaceId(1v1))
	HalfEdgeId(8v1) -> twin:HalfEdgeId(7v1) next:HalfEdgeId(24v1) VertexId(1v1) None
	HalfEdgeId(9v1) -> twin:HalfEdgeId(10v1) next:HalfEdgeId(11v1) VertexId(5v1) Some(FaceId(2v1))
	HalfEdgeId(10v1) -> twin:HalfEdgeId(9v1) next:HalfEdgeId(16v1) VertexId(6v1) None
	HalfEdgeId(11v1) -> twin:HalfEdgeId(12v1) next:HalfEdgeId(13v1) VertexId(6v1) Some(FaceId(2v1))
	HalfEdgeId(12v1) -> twin:HalfEdgeId(11v1) next:HalfEdgeId(23v1) VertexId(7v1) Some(FaceId(4v1))
	HalfEdgeId(13v1) -> twin:HalfEdgeId(14v1) next:HalfEdgeId(15v1) VertexId(7v1) Some(FaceId(2v1))
	HalfEdgeId(14v1) -> twin:HalfEdgeId(13v1) next:HalfEdgeId(22v1) VertexId(8v1) None
	HalfEdgeId(15v1) -> twin:HalfEdgeId(16v1) next:HalfEdgeId(9v1) VertexId(8v1) Some(FaceId(2v1))
	HalfEdgeId(16v1) -> twin:HalfEdgeId(15v1) next:HalfEdgeId(17v1) VertexId(5v1) Some(FaceId(3v1))
	HalfEdgeId(17v1) -> twin:HalfEdgeId(18v1) next:HalfEdgeId(2v1) VertexId(8v1) Some(FaceId(3v1))
	HalfEdgeId(18v1) -> twin:HalfEdgeId(17v1) next:HalfEdgeId(14v1) VertexId(2v1) None
	HalfEdgeId(19v1) -> twin:HalfEdgeId(20v1) next:HalfEdgeId(4294967295v1) VertexId(1v1) Some(FaceId(3v1))
	HalfEdgeId(20v1) -> twin:HalfEdgeId(19v1) next:HalfEdgeId(8v1) VertexId(5v1) None
	HalfEdgeId(21v1) -> twin:HalfEdgeId(22v1) next:HalfEdgeId(12v1) VertexId(3v1) Some(FaceId(4v1))
	HalfEdgeId(22v1) -> twin:HalfEdgeId(21v1) next:HalfEdgeId(4v1) VertexId(7v1) None
	HalfEdgeId(23v1) -> twin:HalfEdgeId(24v1) next:HalfEdgeId(6v1) VertexId(6v1) Some(FaceId(4v1))
	HalfEdgeId(24v1) -> twin:HalfEdgeId(23v1) next:HalfEdgeId(10v1) VertexId(4v1) None

***new_face: FaceId(5v1) - [VertexId(6v1), VertexId(5v1), VertexId(1v1), VertexId(4v1)]

VertexId(5v1) outgoing_edges are [HalfEdgeId(9v1), HalfEdgeId(16v1)]

Connecting VertexId(6v1) to VertexId(5v1). Edges:
	VertexId(6v1): Some([HalfEdgeId(23v1), HalfEdgeId(10v1), HalfEdgeId(11v1)])
	VertexId(5v1): Some([HalfEdgeId(9v1), HalfEdgeId(16v1)])
	Only start VertexId(6v1) has boundary edge.
	 - Loop faces are:edge:HalfEdgeId(16v1) face:Some(FaceId(3v1))
	 - Loop faces are:edge:HalfEdgeId(17v1) face:Some(FaceId(3v1))
	 - Loop faces are:edge:HalfEdgeId(2v1) face:Some(FaceId(3v1))
	 - Loop faces are:edge:HalfEdgeId(19v1) face:Some(FaceId(3v1))
	 - Checking HalfEdgeId(9v1).face = Some(FaceId(2v1))
	 - Checking HalfEdgeId(16v1).face = Some(FaceId(3v1))
Detected face-edge.next to be HalfEdgeId(4294967295v1) from VertexId(6v1) and boundary-edge.next to be HalfEdgeId(10v1) fom VertexId(5v1)
Created face-edge HalfEdgeId(25v1) with .next = HalfEdgeId(4294967295v1) and boundary-edge HalfEdgeId(26v1) with .next = HalfEdgeId(10v1)
Updated outgoing edges:
	VertexId(6v1): Some([HalfEdgeId(23v1), HalfEdgeId(10v1), HalfEdgeId(11v1), HalfEdgeId(25v1)])
	VertexId(5v1): Some([HalfEdgeId(9v1), HalfEdgeId(16v1), HalfEdgeId(26v1)])
Detected previously existing boundary_edge_next: HalfEdgeId(10v1)