Source code for compas_rhino.artists._shapeartist
from __future__ import print_function
from __future__ import absolute_import
from __future__ import division
import compas_rhino
from compas.datastructures import Mesh
from compas_rhino.artists._artist import BaseArtist
__all__ = ['ShapeArtist']
[docs]class ShapeArtist(BaseArtist):
"""Base class for artists for geometric shapes.
Parameters
----------
shape: :class:`compas.geometry.Shape`
The geometry of the shape.
color : 3-tuple, optional
The RGB components of the base color of the shape.
layer : str, optional
The layer in which the shape should be contained.
Attributes
----------
shape: :class:`compas.geometry.Shape`
The geometry of the shape.
name : str
The name of the shape.
color : tuple
The RGB components of the base color of the shape.
layer : str
The layer in which the shape should be contained.
"""
[docs] def __init__(self, shape, color=None, layer=None):
super(ShapeArtist, self).__init__()
self._shape = None
self._mesh = None
self.shape = shape
self.color = color
self.layer = layer
@property
def shape(self):
""":class:`compas.geometry.Shape` : The geometry of the shape."""
return self._shape
@shape.setter
def shape(self, shape):
self._shape = shape
self._mesh = Mesh.from_shape(shape)
@property
def name(self):
"""str : Reference to the name of the shape."""
return self.shape.name
@name.setter
def name(self, name):
self.shape.name = name
[docs] def clear_layer(self):
"""Clear the main layer of the artist."""
if self.layer:
compas_rhino.clear_layer(self.layer)
# ==============================================================================
# Main
# ==============================================================================
if __name__ == "__main__":
pass