register_shape_conversion()#
Register new shape conversion functionality to be used by convert_shape().
Examples#
import numpy as np
from shapely import Point
def shapely_point_precondition(obj):
return isinstance(obj, Point)
# draw shapely points as a group of gaussian distributed points
def shapely_point_converter(sketch, obj, **kwargs):
sigma = kwargs.get('sigma', 5)
points = sigma * np.random.randn(1000, 2) + [obj.x, obj.y]
s = sketch.create_shape()
with s.begin_shape(sketch.POINTS):
s.vertices(points)
return s
py5.register_shape_conversion(
shapely_point_precondition, shapely_point_converter
)
def setup():
point1 = Point(30, 70)
point2 = Point(70, 30)
points1 = py5.convert_shape(point1)
points2 = py5.convert_shape(point2, sigma=10)
py5.println(type(points1))
py5.println(type(points2))
py5.shape(points1)
py5.shape(points2)
Description#
Register new shape conversion functionality to be used by convert_shape(). This will allow users to extend py5’s capabilities and compatability within the Python ecosystem.
The precondition
parameter must be a function that accepts an object as a parameter and returns True
if and only if the convert_function
can successfully convert the object.
The convert_function
parameter must be a function that accepts an object as a parameter and returns a Py5Shape object.
Signatures#
register_shape_conversion(
precondition: Callable, # predicate determining if an object can be converted
convert_function: Callable, # function to convert object to Py5Shape object
) -> None
Updated on December 11, 2023 16:58:45pm UTC