PerforatedVertexState

Base class for all perforated shapes (shapes with holes)

Perforated shapes have an outer contour (defined by subclass) and zero or more vertex loops (specified via Shape objects). Subclasses implement _generate_outer_contour() to define their specific outer shape geometry (circle, star, ellipse, etc.). Visual attributes (fill_color, stroke_color, etc.) are inherited from VertexState and apply to the entire perforated shape uniformly.

Constructor

PerforatedVertexState(
    pos: Optional[Point2D] = None,
    scale: Optional[float] = None,
    opacity: Optional[float] = None,
    rotation: Optional[float] = None,
    skew_x: Optional[float] = None,
    skew_y: Optional[float] = None,
    clip_state: Optional[State] = None,
    mask_state: Optional[State] = None,
    clip_states: Optional[List[State]] = None,
    mask_states: Optional[List[State]] = None,
    filter: Optional[Filter] = None,
    NON_INTERPOLATABLE_FIELDS: frozenset[str] = frozenset({'DEFAULT_EASING', 'NON_INTERPOLATABLE_FIELDS'}),
    fill_color: Optional[Color] = Color.NONE,
    fill_opacity: float = 1,
    fill_gradient: Optional[Gradient] = None,
    fill_pattern: Optional[Pattern] = None,
    stroke_color: Optional[Color] = Color.NONE,
    stroke_opacity: float = 1,
    stroke_width: float = 1,
    stroke_gradient: Optional[Gradient] = None,
    stroke_pattern: Optional[Pattern] = None,
    closed: bool = True,
    _num_vertices: Optional[int] = None,
    _aligned_contours: Optional[VertexContours] = None,
    holes: List[Shape] = <factory>,
    holes_fill_color: Optional[Color] = Color.NONE,
    holes_fill_opacity: Optional[float] = 0,
    holes_stroke_color: Optional[Color] = Color.NONE,
    holes_stroke_opacity: Optional[float] = None,
    holes_stroke_width: Optional[float] = None
) -> None

Methods

get_contours

get_contours()

Get contours for this shape

get_renderer_class

get_renderer_class()

Get the primitive renderer for static/keystate rendering

get_vertex_renderer_class

get_vertex_renderer_class()

Get the vertex renderer for morphing transitions

get_vertices

get_vertices()

Get outer contour vertices (backwards compatibility)

is_angle

is_angle(field: field)

need_morph

need_morph(state)

with_x

with_x(x: float) -> State

with_y

with_y(y: float) -> State

Properties

x
y