wolfhece.assets.pie.zones_asset

Module Contents

class wolfhece.assets.pie.zones_asset.PieZonesAsset(values: Sequence[float], center: tuple[float, float] = (0.0, 0.0), radius: float = 10.0, *, labels: Sequence[str] | None = None, colors: Sequence[tuple[int, int, int] | tuple[int, int, int, int]] | None = None, start_angle_deg: float = 90.0, clockwise: bool = False, sectors_as_independent_zones: bool = False, legend_visible: bool = True, legend_show_percent: bool = True, legend_show_value: bool = False, legend_offset_factor: float = 0.65, legend_position_mode: str = 'auto', legend_positions: Sequence[tuple[float, float] | None] | None = None, legend_text_color: tuple[int, int, int] = (0, 0, 0), fill_clock_animation: bool = False, fill_anim_speed: float = 1.0, smoothing: bool = True, border_enabled: bool = True, border_width: float = 1.0, border_color: tuple[int, int, int] = (25, 25, 25), store_fraction_in_z: bool = True, idx: str = 'pie_chart', parent=None, mapviewer=None)[source]

Pie asset factory producing native Zones for mapviewer rendering.

DEFAULT_COLORS: tuple[tuple[int, int, int, int], Ellipsis] = ((41, 98, 255, 235), (0, 166, 118, 235), (255, 122, 69, 235), (138, 79, 255, 235), (255, 178, 0,...[source]
model[source]
center_x[source]
center_y[source]
radius[source]
start_angle_deg[source]
clockwise = False[source]
sectors_as_independent_zones = False[source]
legend_visible = True[source]
legend_show_percent = True[source]
legend_show_value = False[source]
legend_offset_factor[source]
legend_position_mode = 'auto'[source]
legend_positions[source]
legend_text_color[source]
fill_clock_animation = False[source]
fill_anim_speed[source]
smoothing = True[source]
border_enabled = True[source]
border_width[source]
border_color = (25, 25, 25)[source]
store_fraction_in_z = True[source]
idx = ''[source]
parent = None[source]
mapviewer = None[source]
_colors[source]
_normalize_legend_positions(positions: Sequence[tuple[float, float] | None] | None) list[tuple[float, float] | None][source]
_to_rgba(color: tuple[int, Ellipsis]) tuple[int, int, int, int][source]
_normalize_colors(colors: Sequence[tuple[int, int, int] | tuple[int, int, int, int]] | None) list[tuple[int, int, int, int]][source]
_slice_color(idx: int) tuple[int, int, int, int][source]
_legend_text(slc: wolfhece.assets.pie.distribution.PieSlice) str[source]
_legend_color_for_fill(rgba: tuple[int, int, int, int]) tuple[int, int, int][source]

Return fixed legend text color for exterior positioning.

Legends are now outside pie sectors, so contrast with fill is irrelevant. Use the configured legend_text_color for consistency across all legend items.

_sector_centroid(slc: wolfhece.assets.pie.distribution.PieSlice) tuple[float, float][source]

Centroid of a circular sector in world coordinates.

_slice_mid_angle_rad(slc: wolfhece.assets.pie.distribution.PieSlice) float[source]
_legend_alignment_for_x(x: float) str[source]
_legend_world_height(slc: wolfhece.assets.pie.distribution.PieSlice) float[source]

Legend text height in world units, scaled to slice size.

_legend_width_factor(legend_text: str) float[source]

Approximate width/height ratio of rendered legend text.

_legend_world_length(slc: wolfhece.assets.pie.distribution.PieSlice, legend_text: str) float[source]
_legend_bbox(x: float, y: float, width: float, height: float, alignment: str) tuple[float, float, float, float][source]
_bbox_overlap_area(bbox1: tuple[float, float, float, float], bbox2: tuple[float, float, float, float]) float[source]
_bbox_circle_penalty(bbox: tuple[float, float, float, float]) float[source]
_auto_legend_radial_factor() float[source]
_auto_legend_layout(slices: Sequence[wolfhece.assets.pie.distribution.PieSlice]) list[tuple[float, float, str, float, float]][source]
_legend_layout(slices: Sequence[wolfhece.assets.pie.distribution.PieSlice]) list[tuple[float, float, str, float, float]][source]
_nb_arc_points(angle_delta_deg: float) int[source]
_sector_vertices(start_deg: float, end_deg: float, z_value: float) list[wolfhece.PyVertexvectors.wolfvertex][source]
_configure_vector_style(vec: wolfhece.PyVertexvectors.vector, rgba: tuple[int, int, int, int], slc: wolfhece.assets.pie.distribution.PieSlice, legend_layout: tuple[float, float, str, float, float] | None = None) None[source]
to_zones() wolfhece.PyVertexvectors.Zones[source]

Build and return a native Zones object representing the pie chart.

add_to_mapviewer(mapviewer, id: str | None = None, ToCheck: bool = True) wolfhece.PyVertexvectors.Zones[source]

Build and add the pie as a vector object in a mapviewer.

wolfhece.assets.pie.zones_asset.build_pie_zones(values: Sequence[float], center: tuple[float, float], radius: float, **kwargs) wolfhece.PyVertexvectors.Zones[source]

Convenience function returning a pie chart as Zones.