# -*- coding: utf-8 -*- # # Licensed under the terms of the BSD 3-Clause # (see plotpy/LICENSE for details) """ Constants ========= This module provides constants used in plotpy. """ from __future__ import annotations import enum from plotpy.config import _ # =============================================================================== # Plot axes # =============================================================================== #: ID of the x axis AXIS_IDS = Y_LEFT, Y_RIGHT, X_BOTTOM, X_TOP = range(4) # =============================================================================== # Plot types # =============================================================================== class PlotType(enum.Enum): """ This is the enum used for the plot type. Defines how the plot should deal with the different PlotItems types (curves and images) """ #: Automatic plot type. The first PlotItem attached to the plot sets the type. #: All tools (curve and image related) are registered and accessible depending #: on the last selected PlotItem. AUTO = 1 #: Curve specialized plot. The y axis is not reversed and the aspect ratio is not #: locked by default. Only CURVE typed tools are automatically registered. CURVE = 2 #: Image specialized plot. The y axis is reversed and the aspect ratio is locked #: by default. Only IMAGE typed tools are automatically registered. IMAGE = 3 #: No assumption is made on the type of items to be displayed on the plot. Acts #: like the CURVE value of the enum for y axis and aspect ratio. No tool are #: automatically registered. MANUAL = 4 # =============================================================================== # Plot parameters # =============================================================================== PARAMETERS_TITLE_ICON = { "grid": (_("Grid..."), "grid.png"), "axes": (_("Axes style..."), "axes.png"), "item": (_("Parameters..."), "settings.png"), } # =============================================================================== # Panels # =============================================================================== #: ID of the `item list` panel ID_ITEMLIST = "itemlist" #: ID of the `contrast adjustment` panel ID_CONTRAST = "contrast" #: ID of the `X-axis cross section` panel ID_XCS = "x_cross_section" #: ID of the `Y-axis cross section` panel ID_YCS = "y_cross_section" #: ID of the `oblique averaged cross section` panel ID_OCS = "oblique_cross_section" #: ID of the `line cross section` panel ID_LCS = "line_cross_section" # =============================================================================== # Plot items # =============================================================================== # Shape Z offset used when adding shapes to the plot SHAPE_Z_OFFSET = 1000 # Lookup table alpha functions for image items class LUTAlpha(enum.Enum): """LUT Alpha functions""" #: No alpha function NONE = 0 #: Constant alpha function CONSTANT = 1 #: Linear alpha function LINEAR = 2 #: Sigmoid alpha function SIGMOID = 3 #: Hyperbolic tangent alpha function TANH = 4 #: Transparent lowest value and opaque highest value STEP = 5 @classmethod def get_member_from_name(cls: type["LUTAlpha"], name: str) -> "LUTAlpha|None": """Return the member of the enum from its name""" for member in cls: if member.name.lower() == name.lower(): return member return None @classmethod def get_choices(cls: type["LUTAlpha"]) -> list[tuple[int, str]]: """Return the list of choices""" return [ (LUTAlpha.NONE.value, _("None")), (LUTAlpha.CONSTANT.value, _("Constant")), (LUTAlpha.LINEAR.value, _("Linear")), (LUTAlpha.SIGMOID.value, _("Sigmoid")), (LUTAlpha.TANH.value, _("Hyperbolic tangent")), (LUTAlpha.STEP.value, _("Step")), ] @classmethod def get_help(cls: type["LUTAlpha"]) -> str: """Return tooltip help for all alpha functions""" return _( "Alpha function applied to the Look-Up Table (LUT)
" "to control the transparency of the image:
" "(maximum opacity is given by the Global alpha parameter)

" "None: No alpha function
" "Constant: Constant alpha function
" "Linear: Linear alpha function
" "Sigmoid: Sigmoid alpha function
" "Hyperbolic tangent: Hyperbolic tangent alpha function
" "Step: Lowest value of the LUT is 100% transparent, other " "values are opaque" ) # Lookup table size LUT_SIZE = 1024 LUT_MAX = float(LUT_SIZE - 1)