pub struct Context {Show 13 fields
pub initialized: bool,
pub registry: Registry,
pub groups: HashMap<String, Group>,
pub slice_planes: HashMap<String, SlicePlane>,
pub gizmo_config: GizmoConfig,
pub selected_structure: Option<(String, String)>,
pub selected_slice_plane: Option<String>,
pub options: Options,
pub length_scale: f32,
pub bounding_box: (Vec3, Vec3),
pub floating_quantities: Vec<Box<dyn Quantity>>,
pub file_drop_callback: Option<FileDropCallback>,
pub material_load_queue: Vec<MaterialLoadRequest>,
}Expand description
The global context containing all polyscope state.
Fields§
§initialized: boolWhether polyscope has been initialized.
registry: RegistryThe structure registry.
groups: HashMap<String, Group>Groups for organizing structures.
slice_planes: HashMap<String, SlicePlane>Slice planes for cutting through geometry.
gizmo_config: GizmoConfigGizmo configuration for transformation controls.
selected_structure: Option<(String, String)>Currently selected structure (type_name, name) for gizmo operations.
selected_slice_plane: Option<String>Currently selected slice plane for gizmo operations.
options: OptionsGlobal options.
length_scale: f32Representative length scale for all registered structures.
bounding_box: (Vec3, Vec3)Axis-aligned bounding box for all registered structures.
floating_quantities: Vec<Box<dyn Quantity>>Floating quantities (not attached to any structure).
file_drop_callback: Option<FileDropCallback>Callback invoked when files are dropped onto the window.
material_load_queue: Vec<MaterialLoadRequest>Deferred material load requests (processed by App each frame).
Implementations§
Source§impl Context
impl Context
Sourcepub fn update_extents(&mut self)
pub fn update_extents(&mut self)
Updates the global bounding box and length scale from all structures.
Respects the auto_compute_scene_extents option: when disabled, this
is a no-op and the user controls extents manually. Matches C++ Polyscope’s
updateStructureExtents() guard behavior.
Sourcepub fn recompute_extents(&mut self)
pub fn recompute_extents(&mut self)
Unconditionally recomputes extents from all registered structures.
Called by update_extents() when auto-compute is enabled, and also
called directly when the user re-enables auto-compute.
Sourcepub fn create_group(&mut self, name: &str) -> &mut Group
pub fn create_group(&mut self, name: &str) -> &mut Group
Creates a new group.
Sourcepub fn get_group_mut(&mut self, name: &str) -> Option<&mut Group>
pub fn get_group_mut(&mut self, name: &str) -> Option<&mut Group>
Gets a mutable group by name.
Sourcepub fn remove_group(&mut self, name: &str) -> Option<Group>
pub fn remove_group(&mut self, name: &str) -> Option<Group>
Removes a group by name.
Sourcepub fn has_group(&self, name: &str) -> bool
pub fn has_group(&self, name: &str) -> bool
Returns true if a group with the given name exists.
Sourcepub fn group_names(&self) -> Vec<&str>
pub fn group_names(&self) -> Vec<&str>
Returns all group names.
Sourcepub fn is_structure_visible(&self, structure: &dyn Structure) -> bool
pub fn is_structure_visible(&self, structure: &dyn Structure) -> bool
Checks if a structure should be visible, combining its own enabled state with group visibility.
A structure is visible if:
- Its own
is_enabled()returns true, AND - It’s not in any disabled group (checked via
is_structure_visible_in_groups)
Sourcepub fn is_structure_visible_in_groups(
&self,
type_name: &str,
name: &str,
) -> bool
pub fn is_structure_visible_in_groups( &self, type_name: &str, name: &str, ) -> bool
Checks if a structure should be visible based on its group membership.
A structure is visible if:
- It’s not in any group, or
- All of its ancestor groups are enabled
Sourcepub fn add_slice_plane(&mut self, name: &str) -> &mut SlicePlane
pub fn add_slice_plane(&mut self, name: &str) -> &mut SlicePlane
Adds a new slice plane.
Sourcepub fn get_slice_plane(&self, name: &str) -> Option<&SlicePlane>
pub fn get_slice_plane(&self, name: &str) -> Option<&SlicePlane>
Gets a slice plane by name.
Sourcepub fn get_slice_plane_mut(&mut self, name: &str) -> Option<&mut SlicePlane>
pub fn get_slice_plane_mut(&mut self, name: &str) -> Option<&mut SlicePlane>
Gets a mutable slice plane by name.
Sourcepub fn remove_slice_plane(&mut self, name: &str) -> Option<SlicePlane>
pub fn remove_slice_plane(&mut self, name: &str) -> Option<SlicePlane>
Removes a slice plane by name.
Sourcepub fn has_slice_plane(&self, name: &str) -> bool
pub fn has_slice_plane(&self, name: &str) -> bool
Returns true if a slice plane with the given name exists.
Sourcepub fn slice_plane_names(&self) -> Vec<&str>
pub fn slice_plane_names(&self) -> Vec<&str>
Returns all slice plane names.
Sourcepub fn num_slice_planes(&self) -> usize
pub fn num_slice_planes(&self) -> usize
Returns the number of slice planes.
Sourcepub fn slice_planes(&self) -> impl Iterator<Item = &SlicePlane>
pub fn slice_planes(&self) -> impl Iterator<Item = &SlicePlane>
Returns an iterator over all slice planes.
Sourcepub fn enabled_slice_planes(&self) -> impl Iterator<Item = &SlicePlane>
pub fn enabled_slice_planes(&self) -> impl Iterator<Item = &SlicePlane>
Returns an iterator over all enabled slice planes.
Sourcepub fn select_structure(&mut self, type_name: &str, name: &str)
pub fn select_structure(&mut self, type_name: &str, name: &str)
Selects a structure for gizmo manipulation. This deselects any selected slice plane (mutual exclusion).
Sourcepub fn deselect_structure(&mut self)
pub fn deselect_structure(&mut self)
Deselects the current structure.
Sourcepub fn selected_structure(&self) -> Option<(&str, &str)>
pub fn selected_structure(&self) -> Option<(&str, &str)>
Returns the currently selected structure, if any.
Sourcepub fn has_selection(&self) -> bool
pub fn has_selection(&self) -> bool
Returns whether a structure is selected.
Sourcepub fn select_slice_plane(&mut self, name: &str)
pub fn select_slice_plane(&mut self, name: &str)
Selects a slice plane for gizmo manipulation. This deselects any selected structure (mutual exclusion).
Sourcepub fn deselect_slice_plane(&mut self)
pub fn deselect_slice_plane(&mut self)
Deselects the current slice plane.
Sourcepub fn selected_slice_plane(&self) -> Option<&str>
pub fn selected_slice_plane(&self) -> Option<&str>
Returns the currently selected slice plane name, if any.
Sourcepub fn has_slice_plane_selection(&self) -> bool
pub fn has_slice_plane_selection(&self) -> bool
Returns whether a slice plane is selected.
Sourcepub fn gizmo(&self) -> &GizmoConfig
pub fn gizmo(&self) -> &GizmoConfig
Returns the gizmo configuration.
Sourcepub fn gizmo_mut(&mut self) -> &mut GizmoConfig
pub fn gizmo_mut(&mut self) -> &mut GizmoConfig
Returns the mutable gizmo configuration.