Beispiel #1
0
 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)
Beispiel #2
0
 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)))
Beispiel #3
0
 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)))
Beispiel #4
0
    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),
     )
Beispiel #6
0
 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),
     )
Beispiel #7
0
    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))
Beispiel #9
0
 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))
Beispiel #10
0
	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)
Beispiel #11
0
 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))