added meaningful subd vert test
This commit is contained in:
parent
e0460a0b8d
commit
71f99ba58d
@ -52,18 +52,15 @@ def refine(mesh):
|
|||||||
new_vertices.append(centroid(tmp_verts))
|
new_vertices.append(centroid(tmp_verts))
|
||||||
|
|
||||||
# For each face point, add an edge for every edge of the old face,
|
# For each face point, add an edge for every edge of the old face,
|
||||||
# connecting the face point to each edge point for the face.
|
# connecting the new face point to each new edge point
|
||||||
for trunc_vid in xrange(len(new_vertices[f_vert_offset:e_vert_offset])):
|
for trunc_vid in xrange(len(new_vertices[f_vert_offset:e_vert_offset])):
|
||||||
overall_vid = f_vert_offset + trunc_vid
|
overall_vid = f_vert_offset + trunc_vid
|
||||||
for edge_vid in edge_vids_for_face[trunc_vid]:
|
for edge_vid in edge_vids_for_face[trunc_vid]:
|
||||||
new_edges.append([edge_vid, overall_vid])
|
new_edges.append([edge_vid, overall_vid])
|
||||||
|
|
||||||
# v_vert_offset = len(new_vertices)
|
# For each original point P, move the original point to a new location
|
||||||
|
|
||||||
# For each original point P
|
|
||||||
for new_vid in xrange(f_vert_offset):
|
for new_vid in xrange(f_vert_offset):
|
||||||
# take the average F of all n face points for faces touching P ...
|
# take the average F of all n face points for faces touching P ...
|
||||||
|
|
||||||
new_face_ids = face_ids_for_v[new_vid]
|
new_face_ids = face_ids_for_v[new_vid]
|
||||||
F_verts = []
|
F_verts = []
|
||||||
for fid in new_face_ids:
|
for fid in new_face_ids:
|
||||||
|
@ -14,12 +14,16 @@ class TestCC(unittest.TestCase):
|
|||||||
'blender', 'samples')
|
'blender', 'samples')
|
||||||
self.cube_file_name = os.path.join(self.samples_dir, 'cube.json')
|
self.cube_file_name = os.path.join(self.samples_dir, 'cube.json')
|
||||||
self.cube = json.load(open(self.cube_file_name, 'r'))
|
self.cube = json.load(open(self.cube_file_name, 'r'))
|
||||||
|
self.cube_file_name = os.path.join(self.samples_dir, 'cube-blender-cc-1.json')
|
||||||
|
self.cube1 = json.load(open(self.cube_file_name, 'r'))
|
||||||
|
|
||||||
def test_refine(self):
|
def test_refined_vertex_location(self):
|
||||||
p = PolygonMesh(**self.cube)
|
p = PolygonMesh(**self.cube)
|
||||||
p2 = cc.refine(p)
|
p2 = cc.refine(p)
|
||||||
# TODO: this test is meaningless ...
|
v2 = [list(i) for i in p2.vertices]
|
||||||
p2
|
for a, b in zip(sorted(self.cube1['vertices']), sorted(v2)):
|
||||||
|
for i in xrange(len(a)):
|
||||||
|
self.assertAlmostEqual(a[i], b[i])
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main(verbosity=3)
|
unittest.main(verbosity=3)
|
||||||
|
Loading…
Reference in New Issue
Block a user