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<Box<dyn FnMut(&[PathBuf]) + Sync + Send>>,
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<Box<dyn FnMut(&[PathBuf]) + Sync + Send>>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 + 'static),
) -> bool
pub fn is_structure_visible( &self, structure: &(dyn Structure + 'static), ) -> 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.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Context
impl !RefUnwindSafe for Context
impl Send for Context
impl Sync for Context
impl Unpin for Context
impl UnsafeUnpin for Context
impl !UnwindSafe for Context
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().