Source code for compas_rhino.artists.polygonartist


from __future__ import print_function
from __future__ import absolute_import
from __future__ import division

import compas_rhino
from ._primitiveartist import PrimitiveArtist


__all__ = ['PolygonArtist']


[docs]class PolygonArtist(PrimitiveArtist): """Artist for drawing polygons. Parameters ---------- primitive : :class:`compas.geometry.Polygon` A COMPAS polygon. Notes ----- See :class:`compas_rhino.artists.PrimitiveArtist` for all other parameters. Examples -------- .. code-block:: python import random from compas.geometry import Pointcloud from compas.geometry import Polygon from compas.geometry import Translation from compas.utilities import i_to_rgb import compas_rhino from compas_rhino.artists import PolygonArtist pcl = Pointcloud.from_bounds(10, 10, 10, 100) tpl = Polygon.from_sides_and_radius_xy(7, 0.8) compas_rhino.clear_layer("Test::PolygonArtist") for point in pcl.points: polygon = tpl.transformed(Translation.from_vector(point)) artist = PolygonArtist(polygon, color=i_to_rgb(random.random()), layer="Test::PolygonArtist") artist.draw() """
[docs] def draw(self, show_points=False, show_edges=False, show_face=True): """Draw the polygon. Parameters ---------- show_points : bool, optional Default is ``False``. show_edges : bool, optional Default is ``False``. show_face : bool, optional Default is ``True``. Returns ------- list The GUIDs of the created Rhino objects. """ _points = map(list, self.primitive.points) guids = [] if show_points: points = [{'pos': point, 'color': self.color, 'name': self.name} for point in _points] guids += compas_rhino.draw_points(points, layer=self.layer, clear=False, redraw=False) if show_edges: lines = [{'start': list(a), 'end': list(b), 'color': self.color, 'name': self.name} for a, b in self.primitive.lines] guids += compas_rhino.draw_lines(lines, layer=self.layer, clear=False, redraw=False) if show_face: polygons = [{'points': _points, 'color': self.color, 'name': self.name}] guids += compas_rhino.draw_faces(polygons, layer=self.layer, clear=False, redraw=False) self._guids = guids return guids
# ============================================================================== # Main # ============================================================================== if __name__ == "__main__": pass