DataContainer#
- class DataContainer(base_color=(0.7, 0.7, 0.7), highlight_color=(0.8, 0.2, 0.2))[source]#
Bases:
objectContainer for managing and manipulating point cloud data collections.
- Parameters:
- base_colortuple of float, optional
Default color for points in RGB format in range 0-1. Default is (0.7, 0.7, 0.7).
- highlight_colortuple of float, optional
Highlight color for points in RGB format in range 0-1. Default is (0.8, 0.2, 0.2).
Methods
DataContainer.add([points, color])Add a new geometry object to the container.
Remove all data associated with the container.
DataContainer.get(index_or_uuid)Retrieve the Geometry object by index or UUID.
DataContainer.get_actors([include_lod])Get VTK actors from all geometries.
DataContainer.highlight(uuids_or_geometries)Highlight specified geometries.
Highlight specific points in a cloud.
DataContainer.refresh_lod([budget, force])Recompute LOD for all geometries based on aggregate scene budget.
DataContainer.remove(uuids_or_geometries)Remove geometries at specified indices or by geometry objects.
DataContainer.update(uuid_or_geometry, ...)Update a geometry by UUID or geometry object.
Update appearance parameters for specified geometries.
Convert a uuid to an index in self.data.
- add(points=None, color=None, **kwargs)[source]#
Add a new geometry object to the container.
- Parameters:
- points_or_geometrynp.ndarray or Geometry or SegmentationGeometry
Points to add to the container, or an existing geometry object.
- colortuple of float, optional
RGB color values for the point cloud.
- Returns:
- int
Index of the new point cloud.
- get(index_or_uuid)[source]#
Retrieve the Geometry object by index or UUID.
- Parameters:
- index_or_uuidint or str
Geometry index or UUID to retrieve.
- Returns:
- geometry
mosaic.geometry.Geometry Selected geometry or None if not found.
- geometry
- get_actors(include_lod=False)[source]#
Get VTK actors from all geometries.
- Parameters:
- include_lodbool, optional
Include interaction-LOD shadow actors. Only the renderer should set this to True; index-based lookups rely on the default 1:1 correspondence with :pyattr:`data`.
- Returns:
- list
List of VTK actors.
- highlight(uuids_or_geometries)[source]#
Highlight specified geometries.
- Parameters:
- uuids_or_geometrieslist of str or list of Geometry
UUIDs or geometry objects to highlight.
- highlight_points(uuid_or_geometry, point_ids, color)[source]#
Highlight specific points in a cloud.
- Parameters:
- uuid_or_geometryint or str
UUID of geometry to update, or the geometry object itself
- point_idsset
IDs of points to highlight.
- colortuple of float
RGB color for highlighting.
- refresh_lod(budget=None, force=False)[source]#
Recompute LOD for all geometries based on aggregate scene budget.
Distributes the point budget proportionally across geometries so that many small geometries that collectively exceed the budget still benefit from interaction-LOD.
- Parameters:
- budgetint, optional
Total scene point budget. Reads from application settings when None.
- Returns:
- bool
True when LOD actors were created or destroyed (caller should sync the renderer).
- remove(uuids_or_geometries)[source]#
Remove geometries at specified indices or by geometry objects.
- Parameters:
- uuids_or_geometriesstr, list of str, Geometry, or list of Geometry
UUIDs of geometries to remove or geometry objects to remove.
- update(uuid_or_geometry, new_geometry)[source]#
Update a geometry by UUID or geometry object.
- Parameters:
- uuid_or_geometrystr or Geometry
UUID of geometry to update, or the geometry object itself
- new_geometryGeometry
New geometry to replace the old one
- Returns:
- bool
True if update succeeded, False if UUID not found
- update_appearance(uuids_or_geometries, parameters)[source]#
Update appearance parameters for specified geometries.
- Parameters:
- uuids_or_geometrieslist of str or list of Geometry
UUIDs or geometry objects to update
- parametersdict
Appearance parameters to update
- Returns:
- bool
True if full render required (actor was replaced)