from abaqusConstants import *


class DGOrientationOptions:
    """The DGOrientationOptions object stores values and attributes associated with a material
    orientation plot. The DGOrientationOptions object has no constructor command. Abaqus
    creates an *odbDisplayOptions.materialOrientationOptions* member when a display group
    instance is created, using values from *odbDisplay.materialOrientationOptions*.

    Attributes
    ----------
    showAxis1: Boolean
        A Boolean specifying whether axis 1 of the material orientation triad should be
        displayed. The default value is ON.
    showAxis2: Boolean
        A Boolean specifying whether axis 2 of the material orientation triad should be
        displayed. The default value is ON.
    showAxis3: Boolean
        A Boolean specifying whether axis 3 of the material orientation triad should be
        displayed. The default value is ON.
    symbolSize: float
        A Float specifying the size of the material orientation triad. The default value is 6.0.
    lineThickness: SymbolicConstant
        A SymbolicConstant specifying the thickness of the material orientation triad. Possible
        values are VERY_THIN, THIN, MEDIUM, and THICK. The default value is VERY_THIN.
    orientation: SymbolicConstant
        A SymbolicConstant specifying the orientation used for composites. Possible values are
        PLY and LAYUP. The default value is PLY.
    arrowheadStyle: SymbolicConstant
        A SymbolicConstant specifying the arrowhead style for the material orientation triad.
        Possible values are NONE, FILLED, and WIRE. The default value is NONE.
    scaleMode: SymbolicConstant
        A SymbolicConstant specifying the scaling basis for the material orientation triad.
        Possible values are MODEL_SIZE and SCREEN_SIZE. The default value is MODEL_SIZE.
    axis1Color: str
        A String specifying the color of axis 1 of the material orientation triad. The default
        value is "Cyan".
    axis2Color: str
        A String specifying the color of axis 2 of the material orientation triad. The default
        value is "Yellow".
    axis3Color: str
        A String specifying the color of axis 3 of the material orientation triad. The default
        value is "Red".

    Notes
    -----
    This object can be accessed by:

    .. code-block:: python

        session.viewports[name].assemblyDisplay.displayGroupInstances[name].odbDisplayOptions.materialOrientationOptions
        session.viewports[name].layers[name].assemblyDisplay.displayGroupInstances[name].odbDisplayOptions.materialOrientationOptions
        session.viewports[name].layers[name].odbDisplay.displayGroupInstances[name].odbDisplayOptions.materialOrientationOptions
        session.viewports[name].layers[name].partDisplay.displayGroupInstances[name].odbDisplayOptions.materialOrientationOptions
        session.viewports[name].odbDisplay.displayGroupInstances[name].odbDisplayOptions.materialOrientationOptions
        session.viewports[name].partDisplay.displayGroupInstances[name].odbDisplayOptions.materialOrientationOptions
    """

    # A Boolean specifying whether axis 1 of the material orientation triad should be
    # displayed. The default value is ON.
    showAxis1: Boolean = ON

    # A Boolean specifying whether axis 2 of the material orientation triad should be
    # displayed. The default value is ON.
    showAxis2: Boolean = ON

    # A Boolean specifying whether axis 3 of the material orientation triad should be
    # displayed. The default value is ON.
    showAxis3: Boolean = ON

    # A Float specifying the size of the material orientation triad. The default value is 6.0.
    symbolSize: float = 6

    # A SymbolicConstant specifying the thickness of the material orientation triad. Possible
    # values are VERY_THIN, THIN, MEDIUM, and THICK. The default value is VERY_THIN.
    lineThickness: SymbolicConstant = VERY_THIN

    # A SymbolicConstant specifying the orientation used for composites. Possible values are
    # PLY and LAYUP. The default value is PLY.
    orientation: SymbolicConstant = PLY

    # A SymbolicConstant specifying the arrowhead style for the material orientation triad.
    # Possible values are NONE, FILLED, and WIRE. The default value is NONE.
    arrowheadStyle: SymbolicConstant = NONE

    # A SymbolicConstant specifying the scaling basis for the material orientation triad.
    # Possible values are MODEL_SIZE and SCREEN_SIZE. The default value is MODEL_SIZE.
    scaleMode: SymbolicConstant = MODEL_SIZE

    # A String specifying the color of axis 1 of the material orientation triad. The default
    # value is "Cyan".
    axis1Color: str = ""

    # A String specifying the color of axis 2 of the material orientation triad. The default
    # value is "Yellow".
    axis2Color: str = ""

    # A String specifying the color of axis 3 of the material orientation triad. The default
    # value is "Red".
    axis3Color: str = ""
