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