def draw_cavities(self, cavities, color, cavity_type, indices=None): if indices is None: indices = range(self.results.domains.number) for index in set(indices): if 0 <= index < len(cavities.triangles): triangles = cavities.triangles[index] gr3._gr3.gr3_setobjectid(gr3.c_int(len(self.objectids))) self.objectids.append((cavity_type, index)) mesh = gr3.createmesh(triangles.shape[1] * 3, triangles[0, :, :, :], triangles[1, :, :, :], [color] * (triangles.shape[1] * 3)) gr3.drawmesh(mesh, 1, (0, 0, 0), (0, 0, 1), (0, 1, 0), (1, 1, 1), (1, 1, 1)) gr3.deletemesh(c_int(mesh.value)) gr3._gr3.gr3_setobjectid(gr3.c_int(0))
def get_object_at_2dposition(self, x, y): oid = gr3.c_int(0) gr3._gr3.gr3_selectid(gr3.c_int(x), gr3.c_int(y), gr3.c_int(self.width), gr3.c_int(self.height), gr3.byref(oid)) return self.objectids[oid.value]