git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@1171 fdac6126-5c0c-442c-9429-916003d36597
72 lines
2.4 KiB
Python
72 lines
2.4 KiB
Python
import unittest
|
|
import openmesh
|
|
|
|
class Python(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.mesh = openmesh.TriMesh()
|
|
|
|
# Add some vertices
|
|
self.vhandle = []
|
|
|
|
self.vhandle.append(self.mesh.add_vertex(openmesh.Vec3d(0, 1, 0)))
|
|
self.vhandle.append(self.mesh.add_vertex(openmesh.Vec3d(1, 0, 0)))
|
|
self.vhandle.append(self.mesh.add_vertex(openmesh.Vec3d(2, 1, 0)))
|
|
self.vhandle.append(self.mesh.add_vertex(openmesh.Vec3d(0,-1, 0)))
|
|
self.vhandle.append(self.mesh.add_vertex(openmesh.Vec3d(2,-1, 0)))
|
|
|
|
# Add four faces using Python lists
|
|
vertex_list = [self.vhandle[0], self.vhandle[1], self.vhandle[2]]
|
|
self.mesh.add_face(vertex_list)
|
|
vertex_list = [self.vhandle[1], self.vhandle[3], self.vhandle[4]]
|
|
self.mesh.add_face(vertex_list)
|
|
vertex_list = [self.vhandle[0], self.vhandle[3], self.vhandle[1]]
|
|
self.mesh.add_face(vertex_list)
|
|
vertex_list = [self.vhandle[2], self.vhandle[1], self.vhandle[4]]
|
|
self.mesh.add_face(vertex_list)
|
|
|
|
# Test setup:
|
|
# 0 ==== 2
|
|
# |\ 0 /|
|
|
# | \ / |
|
|
# |2 1 3|
|
|
# | / \ |
|
|
# |/ 1 \|
|
|
# 3 ==== 4
|
|
|
|
def test_python_iterator(self):
|
|
# Iterate over all vertices
|
|
indices = [0, 1, 2, 3, 4]
|
|
for v, idx in zip(self.mesh.vertices(), indices):
|
|
self.assertEqual(v.idx(), idx)
|
|
|
|
def test_python_circulator(self):
|
|
# Iterate around vertex 1 at the middle
|
|
indices = [4, 3, 0, 2]
|
|
for v, idx in zip(self.mesh.vv(self.vhandle[1]), indices):
|
|
self.assertEqual(v.idx(), idx)
|
|
|
|
def test_property_manager(self):
|
|
# Check if vertex property exists
|
|
self.assertFalse(openmesh.VPropertyManager.property_exists(self.mesh, "prop"))
|
|
|
|
# Create a new vertex property
|
|
propman = openmesh.VPropertyManager(self.mesh, "prop")
|
|
self.assertTrue(propman.property_exists(self.mesh, "prop"))
|
|
|
|
# Check initial property values
|
|
for v in self.mesh.vertices():
|
|
self.assertEqual(propman[v], None)
|
|
|
|
# Set property values
|
|
propman.set_range(self.mesh.vertices(), 0.0)
|
|
|
|
# Check again
|
|
for v in self.mesh.vertices():
|
|
self.assertEqual(propman[v], 0.0)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
suite = unittest.TestLoader().loadTestsFromTestCase(Python)
|
|
unittest.TextTestRunner(verbosity=2).run(suite)
|