Source code for plato.draw.pythreejs.ConvexPolyhedra

import numpy as np

from ... import draw
from ... import mesh
from .internal import ThreeJSPrimitive

[docs]class ConvexPolyhedra(draw.ConvexPolyhedra, ThreeJSPrimitive): __doc__ = draw.ConvexPolyhedra.__doc__ def update_arrays(self): if not self._dirty_attributes: return vertices = self.vertices if len(vertices) < 4: vertices = np.concatenate([vertices, [(-1, -1, -1), (1, 1, -1), (1, -1, 1), (-1, 1, 1)]], axis=0) poly_mesh = mesh.convexPolyhedronMesh(vertices) (positions, orientations, colors, images, normals) = mesh.unfoldProperties( [self.positions, self.orientations, self.colors], [poly_mesh.image, poly_mesh.normal]) self._finalize_primitive_arrays( positions, orientations, colors, images, normals, poly_mesh.indices)