napari.components.Camera#

class napari.components.Camera(*, center: tuple[float, float, float] | tuple[float, float] = (0.0, 0.0, 0.0), zoom: float = 1.0, angles: tuple[float, float, float] = (0.0, 0.0, 90.0), perspective: float = 0, mouse_pan: bool = True, mouse_zoom: bool = True)[source]#

Bases: EventedModel

Camera object modeling position and view of the camera.

center#

Center of rotation for the camera. In 2D viewing the last two values are used.

Type:

3-tuple

zoom#

Scale from canvas pixels to world pixels.

Type:

float

angles#

Euler angles of camera in 3D viewing (rx, ry, rz), in degrees. Only used during 3D viewing. Note that Euler angles’s intrinsic degeneracy means different sets of Euler angles may lead to the same view.

Type:

3-tuple

perspective#

Perspective (aka “field of view” in vispy) of the camera (if 3D).

Type:

float

interactive#

If the camera mouse pan/zoom is enabled or not. This attribute is deprecated since 0.5.0 and should not be used. Use the mouse_pan and mouse_zoom attributes instead.

Type:

bool

mouse_pan#

If the camera interactive panning with the mouse is enabled or not.

Type:

bool

mouse_zoom#

If the camera interactive zooming with the mouse is enabled or not.

Type:

bool

Methods

calculate_nd_up_direction(ndim, dims_displayed)

Calculate the nD up direction vector of the camera.

calculate_nd_view_direction(ndim, dims_displayed)

Calculate the nD view direction vector of the camera.

construct([_fields_set])

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data.

copy(*[, include, exclude, update, deep])

Duplicate a model, optionally choose which fields to include, exclude and change.

dict(*[, include, exclude, by_alias, ...])

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

enums_as_values([as_values])

Temporarily override how enums are retrieved.

from_orm(obj)

json(*[, include, exclude, by_alias, ...])

Generate a JSON representation of the model, include and exclude arguments as per dict().

parse_file(path, *[, content_type, ...])

parse_obj(obj)

parse_raw(b, *[, content_type, encoding, ...])

reset()

Reset the state of the model to default values.

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

set_view_direction(view_direction[, ...])

Set camera angles from direction vectors.

update(values[, recurse])

Update a model in place.

update_forward_refs(**localns)

Try to update ForwardRefs on fields based on this Model, globalns and localns.

validate(value)

Attributes

events

interactive

up_direction

3D direction vector pointing up on the canvas.

view_direction

3D view direction vector of the camera.

Details

calculate_nd_up_direction(ndim: int, dims_displayed: tuple[int, ...]) ndarray | None[source]#

Calculate the nD up direction vector of the camera.

Parameters:
  • ndim (int) – Number of dimensions in which to embed the 3D view vector.

  • dims_displayed (Tuple[int]) – Dimensions in which to embed the 3D view vector.

Returns:

up_direction_nd – nD view direction vector as an (ndim, ) ndarray

Return type:

np.ndarray

calculate_nd_view_direction(ndim: int, dims_displayed: tuple[int, ...]) ndarray | None[source]#

Calculate the nD view direction vector of the camera.

Parameters:
  • ndim (int) – Number of dimensions in which to embed the 3D view vector.

  • dims_displayed (Tuple[int]) – Dimensions in which to embed the 3D view vector.

Returns:

view_direction_nd – nD view direction vector as an (ndim, ) ndarray

Return type:

np.ndarray

classmethod construct(_fields_set: SetStr | None = None, **values: Any) Model#

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

copy(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, update: DictStrAny | None = None, deep: bool = False) Model#

Duplicate a model, optionally choose which fields to include, exclude and change.

Parameters:
  • include – fields to include in new model

  • exclude – fields to exclude from new model, as with values this takes precedence over include

  • update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

  • deep – set to True to make a deep copy of the model

Returns:

new model instance

dict(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, by_alias: bool = False, skip_defaults: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny#

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

enums_as_values(as_values: bool = True)#

Temporarily override how enums are retrieved.

Parameters:

as_values (bool, optional) – Whether enums should be shown as values (or as enum objects), by default True

json(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, by_alias: bool = False, skip_defaults: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Callable[[Any], Any] | None = None, models_as_dict: bool = True, **dumps_kwargs: Any) unicode#

Generate a JSON representation of the model, include and exclude arguments as per dict().

encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

reset()#

Reset the state of the model to default values.

set_view_direction(view_direction: tuple[float, float, float], up_direction: tuple[float, float, float] = (0, -1, 0))[source]#

Set camera angles from direction vectors.

Both the view direction and the up direction are specified in 3D scene coordinates, the world coordinate system for three currently displayed dimensions.

The provided up direction must not be parallel to the provided view direction. The provided up direction does not need to be orthogonal to the view direction. The final up direction will be a vector orthogonal to the view direction, aligned with the provided up direction.

Parameters:
  • view_direction (3-tuple of float) – The desired view direction vector in 3D scene coordinates, the world coordinate system for three currently displayed dimensions.

  • up_direction (3-tuple of float) – A direction vector which will point upwards on the canvas. Defaults to (0, -1, 0) unless the view direction is parallel to the y-axis, in which case will default to (-1, 0, 0).

property up_direction: tuple[float, float, float]#

3D direction vector pointing up on the canvas.

Up direction is calculated from the Euler angles and returned as a 3-tuple. This direction is in 3D scene coordinates, the world coordinate system for three currently displayed dimensions.

update(values: EventedModel | dict, recurse: bool = True) None#

Update a model in place.

Parameters:
  • values (dict, napari.utils.events.EventedModel) – Values to update the model with. If an EventedModel is passed it is first converted to a dictionary. The keys of this dictionary must be found as attributes on the current model.

  • recurse (bool) – If True, recursively update fields that are EventedModels. Otherwise, just update the immediate fields of this EventedModel, which is useful when the declared field type (e.g. Union) can have different realized types with different fields.

classmethod update_forward_refs(**localns: Any) None#

Try to update ForwardRefs on fields based on this Model, globalns and localns.

property view_direction: tuple[float, float, float]#

3D view direction vector of the camera.

View direction is calculated from the Euler angles and returned as a 3-tuple. This direction is in 3D scene coordinates, the world coordinate system for three currently displayed dimensions.