def _buildVertexList(self, nv, vis, vertexListData): self._numVerts = nv if (self._batch): self._vertexList = self._batch.add_indexed(nv, self._drawStyle, self._group, vis, *vertexListData) else: self._vertexList = vertex_list_indexed(nv, vis, *vertexListData)
def __get_indexed_vertex_list(self): return vertex_list_indexed( 4, [0, 1, 2, 1, 2, 3], (f'v2f/{self.usage}', (self.x, self.y, self.x, self.y + self.height, self.x + self.width, self.y, self.x + self.width, self.y + self.height)), (f'c4B/{self.usage}', tuple((list(self.color) + [self.transparency]) * 4)))
def get_indexed_vertex_list(self, idx_order: List[int]) -> IndexedVertexList: flat_coords = [] flat_colors = [] for point in self: flat_coords.extend([point.x, point.y]) flat_colors.extend(point.color.to_list()) return vertex_list_indexed(len(self), tuple(idx_order), ('v2f', tuple(flat_coords)), ('c3B', tuple(flat_colors)))
def __init__(self, x: float, y: float, width: float, height: float, padx: float = 2., pady: float = 2., samples: int = 10, maximum: Optional[float] = None): self.x = x self.y = y self.width = width self.height = height self.padx = padx self.pady = pady if maximum is None: self._maximum = 100. self._static_maximum = 100. self._maximum_is_set = False else: self._maximum = maximum self._static_maximum = maximum self._maximum_is_set = True try: self._samples = int(samples) except ValueError: raise ValueError( f"invalid literal for parameter 'samples' with base 10: '{samples}'" ) del samples samples = self._samples self._data: Deque[float] = deque(maxlen=samples) self._count: int = 0 self.graph = vertex_list_indexed(samples, self.indices, 'v2f/stream', ('c3f', [0., 1., 0.] * samples)) space_x = (self.width - self.padx * 2) / (samples - 1) base_vertices = [0.0, 0.0] * samples for i, j in enumerate(range(0, samples * 2, 2)): base_x = self.x + self.padx + (i * space_x) base_y = self.y + self.pady base_vertices[j:j + 2] = base_x, base_y self.graph.vertices = base_vertices self._invalid = True
def vertex_list(self): print 'vertex list' verts = list(self.verts) v3f = [] n3f = [] for i, vertex in enumerate(verts): vertex.index = i v3f.extend(vertex) n3f.extend(vertex.normal) indices = [] for face in self.faces: for vertex in face.verts: indices.append(vertex.index) print 'done' return vertex_list_indexed(len(self.verts), indices, ('v3f', v3f), ('n3f', n3f), )
def vertex_list(self): print 'vertex list' verts = list(self.verts) v3f = [] n3f = [] for i, vertex in enumerate(verts): vertex.index = i v3f.extend(vertex) n3f.extend(vertex.normal) indices = [] for face in self.faces: for vertex in face.verts: indices.append(vertex.index) print 'done' return vertex_list_indexed( len(self.verts), indices, ('v3f', v3f), ('n3f', n3f), )
def update_samples(self, samples: int): try: samples = int(samples) except ValueError: raise ValueError( f"invalid literal for parameter 'samples' with base 10: '{samples}'" ) old_samples = self.samples if samples == old_samples: return diff = abs(samples - old_samples) if samples > old_samples: new_data = deque(list(self._data), maxlen=samples) old_vertices = list(self.graph.vertices) old_vertices += [0.0, self.y + self.pady] * diff else: new_data = deque(list(self._data)[diff:diff + samples], maxlen=samples) old_vertices = list(self.graph.vertices[diff * 2:(diff + samples) * 2]) print(range(diff, diff + samples)) space_x = (self.width - self.padx * 2) / (samples - 1) for i, j in enumerate(range(0, samples * 2, 2)): base_x = self.x + self.padx + (i * space_x) old_vertices[j] = base_x self._count = 0 self._samples = samples self._data = new_data self.graph = vertex_list_indexed(samples, self.indices, 'v2f/stream', ('c3f', [1., 0., 0.] * samples)) self.graph.vertices = old_vertices
def vertices(self): return graphics.vertex_list_indexed( len(self.vectors), self.indices, ('v3f', tuple(dim for v in self.vectors for dim in (*v.as_tuple, self.z))), ('c3B', self.colors))
def _create_vertex_list_textured(self, vertices, normals, textures, indices): return vertex_list_indexed(len(vertices)//3, indices, ('v3f/static', vertices), ('n3f/static', normals), ('t3f/static', textures))
def _buildVertexList(self, nv, vis, vertexListData): self._numVerts = nv if(self._batch): self._vertexList = self._batch.add_indexed(nv, self._drawStyle, self._group, vis, *vertexListData) else: self._vertexList = vertex_list_indexed(nv, vis, *vertexListData)
def _create_vertex_list_textured(self, vertices, normals, textures, indices): return vertex_list_indexed( len(vertices) // 3, indices, ('v3f/static', vertices), ('n3f/static', normals), ('t3f/static', textures))