Ejemplo n.º 1
0
    def test_vertices(self):
        """ Test the addition and removal of vertices from a halfedge """
        #add vertex, clear vertices
        he = dcel.HalfEdge()
        e = dcel.HalfEdge(twin=he)
        v1 = dcel.Vertex(np.array([0,0]))
        v2 = dcel.Vertex(np.array([1,1]))
        self.assertIsNotNone(e.twin)
        self.assertIsNone(e.origin)
        self.assertIsNone(e.twin.origin)

        e.addVertex(v1)
        self.assertIsNotNone(e.origin)
        e.addVertex(v2)
        self.assertIsNotNone(e.twin.origin)
        with self.assertRaises(Exception):
            e.addVertex(v1)

        #check getVertices:
        tv1, tv2 = e.getVertices()
        self.assertTrue(tv1 == v1)
        self.assertTrue(tv2 == v2)        
            
        #check the vertices have registered the halfedges:
        self.assertTrue(e in v1.halfEdges)
        self.assertTrue(he in v2.halfEdges)
        #then clear and check the deregistration:
        e.clearVertices()
        self.assertIsNone(e.origin)
        self.assertIsNone(e.twin.origin)
        self.assertTrue(e not in v1.halfEdges)
        self.assertTrue(he not in v2.halfEdges)
Ejemplo n.º 2
0
 def test_vertex_edge_registration_and_edgeless(self):
     """ Check vertices register halfedges correctly """
     self.assertTrue(self.v.isEdgeless())
     he1 = dcel.HalfEdge()
     he2 = dcel.HalfEdge()
     self.v.registerHalfEdge(he1)
     self.assertFalse(self.v.isEdgeless())
     self.v.registerHalfEdge(he2)
     self.assertFalse(self.v.isEdgeless())
     self.v.unregisterHalfEdge(he2)
     self.assertFalse(self.v.isEdgeless())
     self.v.unregisterHalfEdge(he1)
     self.assertTrue(self.v.isEdgeless())
Ejemplo n.º 3
0
    def test_faceSwap(self):
        """ Test the swapping of faces on two halfedges """
        #assign faces to each he, swap them
        f1 = dcel.Face()
        f2 = dcel.Face(site=np.array([1,1]))
        he = dcel.HalfEdge()
        e = dcel.HalfEdge(twin=he)
        e.face = f1
        he.face = f2
        self.assertEqual(e.face, f1)
        self.assertEqual(e.twin.face, f2)

        e.swapFaces()

        self.assertEqual(e.face, f2)
        self.assertEqual(e.twin.face, f1)
Ejemplo n.º 4
0
 def test_halfedge_has_constraints_arbitrary_false(self):
     """ A halfedge isn't constrainted with unrelated candidates """
     he = dcel.HalfEdge()
     self.assertFalse(he.has_constraints(set(["a"])))
Ejemplo n.º 5
0
 def test_halfedge_has_constraints_false(self):
     """ A Halfedge isn't constrained by default """
     he = dcel.HalfEdge()
     self.assertFalse(he.has_constraints())
Ejemplo n.º 6
0
 def setUp(self):
     self.dc = dcel.DCEL()
     self.v1 = dcel.Vertex(np.array([0,0]))
     self.he = dcel.HalfEdge(origin=self.v1)
     self.e = self.dc.createEdge(np.array([0,0]), np.array([1,0]))
     return 1