Example #1
0
File: Sphere.py Project: plubon/CG5
 def getTriangles(self):
     ret = []
     i = 0
     while i <= self.m - 2:
         triangle = Triangle(self.vertices[0], self.vertices[i + 2],
                             self.vertices[i + 1])
         if triangle.check():
             ret.append(triangle)
         i = i + 1
     tr = Triangle(self.vertices[0], self.vertices[1],
                   self.vertices[self.m])
     if tr.check():
         ret.append(tr)
     i = 0
     while i <= self.m - 2:
         triangle = Triangle(self.vertices[self.m * self.n],
                             self.vertices[(self.n - 1) * self.m + i + 1],
                             self.vertices[(self.n - 1) * self.m + i + 2])
         if triangle.check():
             ret.append(triangle)
         i = i + 1
     tr = Triangle(self.vertices[self.m * self.n + 1],
                   self.vertices[self.m * self.n],
                   self.vertices[(self.n - 1) * self.m + 1])
     if tr.check():
         ret.append(tr)
     i = 0
     while i <= self.n - 2:
         j = 1
         while j <= self.m - 1:
             triangle = Triangle(self.vertices[i * self.m + j],
                                 self.vertices[i * self.m + j + 1],
                                 self.vertices[(i + 1) * self.m + j + 1])
             if triangle.check():
                 ret.append(triangle)
             triangle = Triangle(self.vertices[i * self.m + j],
                                 self.vertices[(i + 1) * self.m + j + 1],
                                 self.vertices[(i + 1) * self.m + j])
             if triangle.check():
                 ret.append(triangle)
             j = j + 1
         tr = Triangle(self.vertices[(i + 1) * self.m],
                       self.vertices[i * self.m + 1],
                       self.vertices[(i + 1) * self.m + 1])
         if tr.check():
             ret.append(tr)
         tr = Triangle(self.vertices[(i + 1) * self.m],
                       self.vertices[(i + 1) * self.m + 1],
                       self.vertices[(i + 2) * self.m])
         if tr.check():
             ret.append(tr)
         i += 1
     return ret