Source code for plato.draw.fresnel.Lines

import itertools

import fresnel
import numpy as np

from ... import draw
from ..internal import ShapeAttribute, ShapeDecorator
from .FresnelPrimitive import FresnelPrimitiveSolid

[docs]@ShapeDecorator class Lines(FresnelPrimitiveSolid, draw.Lines): __doc__ = draw.Lines.__doc__ _ATTRIBUTES = draw.Lines._ATTRIBUTES + list( itertools.starmap(ShapeAttribute, [ ('outline', np.float32, 0, 0, False, 'Outline width for all particles') ])) def render(self, scene): geometry = fresnel.geometry.Cylinder( scene=scene, N=len(self.start_points), material=self._material) geometry.points[:, 0, :] = self.start_points geometry.points[:, 1, :] = self.end_points geometry.radius[:] = self.widths/2 geometry.color[:, 0, :] = fresnel.color.linear(self.colors) geometry.color[:, 1, :] = fresnel.color.linear(self.colors) return geometry