Source code for plato.draw.Ellipsoids

import itertools

import numpy as np

from .internal import Shape, ShapeDecorator, ShapeAttribute

[docs]@ShapeDecorator class Ellipsoids(Shape): """A collection of ellipsoids with identical dimensions. Each ellipsoid can have its own position, orientation, and color. All shapes drawn by this primitive share common principal axis lengths. """ _ATTRIBUTES = list(itertools.starmap(ShapeAttribute, [ ('positions', np.float32, (0, 0, 0), 2, True, 'Position of each particle'), ('orientations', np.float32, (1, 0, 0, 0), 2, True, 'Orientation quaternion of each particle'), ('colors', np.float32, (.5, .5, .5, 1), 2, True, 'Color, RGBA, [0, 1] for each particle'), ('a', np.float32, .5, 0, False, 'Radius in the x-direction'), ('b', np.float32, .5, 0, False, 'Radius in the y-direction'), ('c', np.float32, .5, 0, False, 'Radius in the z-direction'), ]))