user: Give a detailed overview of Freestyle Types (freestyle.types): syntax, arguments, return values, common patterns.

assistant: integration method given as an argument.

        Parameters:
        :   **integration_type** (`IntegrationType`) – An integration method.

    integration_type
    :   The integration method.

        Type:
        :   `IntegrationType`

*class* freestyle.types.UnaryFunction1DVoid
:   Class hierarchy: `UnaryFunction1D` > `UnaryFunction1DVoid`

    Base class for unary functions (functors) working on
    `Interface1D`.

    __init__()

    __init__(*integration_type*)
    :   Builds a unary 1D function using either a default constructor
        or the integration method given as an argument.

        Parameters:
        :   **integration_type** (`IntegrationType`) – An integration method.

    integration_type
    :   The integration method.

        Type:
        :   `IntegrationType`

*class* freestyle.types.UnaryPredicate0D
:   Base class for unary predicates that work on
    `Interface0DIterator`. A UnaryPredicate0D is a functor that
    evaluates a condition on an Interface0DIterator and returns true or
    false depending on whether this condition is satisfied or not. The
    UnaryPredicate0D is used by invoking its __call__() method. Any
    inherited class must overload the __call__() method.

    __init__()
    :   Default constructor.

    __call__(*it*)
    :   Must be overload by inherited classes.

        Parameters:
        :   **it** (`Interface0DIterator`) – The Interface0DIterator pointing onto the Interface0D at
            which we wish to evaluate the predicate.

        Returns:
        :   True if the condition is satisfied, false otherwise.

        Return type:
        :   bool

    name
    :   The name of the unary 0D predicate.

        Type:
        :   str

*class* freestyle.types.UnaryPredicate1D
:   Base class for unary predicates that work on `Interface1D`. A
    UnaryPredicate1D is a functor that evaluates a condition on a
    Interface1D and returns true or false depending on whether this
    condition is satisfied or not. The UnaryPredicate1D is used by
    invoking its __call__() method. Any inherited class must overload the
    __call__() method.

    __init__()
    :   Default constructor.

    __call__(*inter*)
    :   Must be overload by inherited classes.

        Parameters:
        :   **inter** (`Interface1D`) – The Interface1D on which we wish to evaluate the predicate.

        Returns:
        :   True if the condition is satisfied, false otherwise.

        Return type:
        :   bool

    name
    :   The name of the unary 1D predicate.

        Type:
        :   str

*class* freestyle.types.ViewEdge
:   Class hierarchy: `Interface1D` > `ViewEdge`

    Class defining a ViewEdge. A ViewEdge in an edge of the image graph.
    it connects two `ViewVertex` objects. It is made by connecting
    a set of FEdges.

    __init__()

    __init__(*brother*)
    :   Builds a `ViewEdge` using the default constructor or the copy constructor.

        Parameters:
        :   **brother** (`ViewEdge`) – A ViewEdge object.

    update_fedges()
    :   Sets Viewedge to this for all embedded fedges.

    chaining_time_stamp
    :   The time stamp of this ViewEdge.

        Type:
        :   int

    first_fedge
    :   The first FEdge that constitutes this ViewEdge.

        Type:
        :   `FEdge`

    first_viewvertex
    :   The first ViewVertex.

        Type:
        :   `ViewVertex`

    id
    :   The Id of this ViewEdge.

        Type:
        :   `Id`

    is_closed
    :   True if this ViewEdge forms a closed loop.

        Type:
        :   bool

    last_fedge
    :   The last FEdge that constitutes this ViewEdge.

        Type:
        :   `FEdge`

    last_viewvertex
    :   The second ViewVertex.

        Type:
        :   `ViewVertex`

    nature
    :   The nature of this ViewEdge.

        Type:
        :   `Nature`

    occludee
    :   The shape that is occluded by the ViewShape to which this ViewEdge
        belongs to. If no object is occluded, this property is set to None.

        Type:
        :   `ViewShape`

    qi
    :   The quantitative invisibility.

        Type:
        :   int

    viewshape
    :   The ViewShape to which this ViewEdge belongs to.

        Type:
        :   `ViewShape`

*class* freestyle.types.ViewEdgeIterator
:   Class hierarchy: `Iterator` > `ViewEdgeIterator`

    Base class for iterators over ViewEdges of the `ViewMap` Graph.
    Basically the increment() operator of this class should be able to
    take the decision of “where” (on which ViewEdge) to go when pointing
    on a given ViewEdge.

    __init__(*begin=None*, *orientation=True*)

    __init__(*brother*)
    :   Builds a ViewEdgeIterator from a starting ViewEdge and its
        orientation or the copy constructor.

        Parameters:
        :   - **begin** (`ViewEdge` | None) – The ViewEdge from where to start the iteration.
            - **orientation** (*bool*) – If true, we’ll look for the next ViewEdge among
              the ViewEdges that surround the ending ViewVertex of begin. If
              false, we’ll search over the ViewEdges surrounding the ending
              ViewVertex of begin.
            - **brother** (`ViewEdgeIterator`) – A ViewEdgeIterator object.

    change_orientation()
    :   Changes the current orientation.

    begin
    :   The first ViewEdge used for the iteration.

        Type:
        :   `ViewEdge`

    current_edge
    :   The ViewEdge object currently pointed by this iterator.

        Type:
        :   `ViewEdge`

    object
    :   The ViewEdge object currently pointed by this iterator.

        Type:
        :   `ViewEdge`

    orientation
    :   The orientation of the pointed ViewEdge in the iteration.
        If true, the iterator looks for the next ViewEdge among those ViewEdges
        that surround the ending ViewVertex of the “begin” ViewEdge. If false,
        the iterator searches over the ViewEdges surrounding the ending ViewVertex
        of the “begin” ViewEdge.

        Type:
        :   bool

*class* freestyle.types.ViewMap
:   Class defining the ViewMap.

    __init__()
    :   Default constructor.

    get_closest_fedge(*x*, *y*)
    :   Gets the FEdge nearest to the 2D point specified as arguments.

        Parameters:
        :   - **x** (*float*) – X coordinate of a 2D point.
            - **y** (*float*) – Y coordinate of a 2D point.

        Returns:
        :   The FEdge nearest to the specified 2D point.

        Return type:
        :   `FEdge`

    get_closest_viewedge(*x*, *y*)
    :   Gets the ViewEdge nearest to the 2D point specified as arguments.

        Parameters:
        :   - **x** (*float*) – X coordinate of a 2D point.
            - **y** (*float*) – Y coordinate of a 2D point.

        Returns:
        :   The ViewEdge nearest to the specified 2D point.

        Return type:
        :   `ViewEdge`

    scene_bbox
    :   The 3D bounding box of the scene.

        Type:
        :   `BBox`

*class* freestyle.types.ViewShape
:   Class gathering the elements of the ViewMap (i.e., `ViewVertex`
    and `ViewEdge`) that are issued from the same input shape.

    __init__()

    __init__(*brother*)

    __init__(*sshape*)
    :   Builds a `ViewShape` using the default constructor,
        copy constructor, or from a `SShape`.

        Parameters:
        :   - **brother** (`ViewShape`) – A ViewShape object.
            - **sshape** (`SShape`) – An SShape object.

    add_edge(*edge*)
    :   Adds a ViewEdge to the list of ViewEdge objects.

        Parameters:
        :   **edge** (`ViewEdge`) – A ViewEdge object.

    add_vertex(*vertex*)
    :   Adds a ViewVertex to the list of the ViewVertex objects.

        Parameters:
        :   **vertex** (`ViewVertex`) – A ViewVertex object.

    edges
    :   The list of ViewEdge objects contained in this ViewShape.

        Type:
        :   List of `ViewEdge`

    id
    :   The Id of this ViewShape.

        Type:
        :   `Id`

    library_path
    :   The library path of the ViewShape.

        Type:
        :   str, or None if the ViewShape is not part of a library.

    name
    :   The name of the ViewShape.

        Type:
        :   str

    sshape
    :   The SShape on top of which this ViewShape is built.

        Type:
        :   `SShape`

    vertices
    :   The list of ViewVertex objects contained in this ViewShape.

        Type:
        :   List of `ViewVertex`

*class* freestyle.types.ViewVertex
:   Class hierarchy: `Interface0D` > `ViewVertex`

    Class to define a view vertex. A view vertex is a feature vertex
    corresponding to a point of the image graph, where the characteristics
    of an edge (e.g., nature and visibility) might change. A
    `ViewVertex` can be of two kinds: A `TVertex` when it
    corresponds to the intersection between two ViewEdges or a
    `NonTVertex` when it corresponds to a vertex of the initial
    input mesh (it is the case for vertices such as corners for example).
    Thus, this class can be specialized into two classes, the
    `TVertex` class and the `NonTVertex` class.

    edges_begin()
    :   Returns an iterator over the ViewEdges that goes to or comes from
        this ViewVertex pointing to the first ViewEdge of the list. The
        orientedViewEdgeIterator allows to iterate in CCW order over these
        ViewEdges and to get the orientation for each ViewEdge
        (incoming/outgoing).

        Returns:
        :   An orientedViewEdgeIterator pointing to the first ViewEdge.

        Return type:
        :   `orientedViewEdgeIterator`

    edges_end()
    :   Returns an orientedViewEdgeIterator over the ViewEdges around this
        ViewVertex, pointing after the last ViewEdge.

        Returns:
        :   An orientedViewEdgeIterator pointing after the last ViewEdge.

        Return type:
        :   `orientedViewEdgeIterator`

    edges_iterator(*edge*)
    :   Returns an orientedViewEdgeIterator pointing to the ViewEdge given
        as argument.

        Parameters:
        :   **edge** (`ViewEdge`) – A ViewEdge object.

        Returns:
        :   An orientedViewEdgeIterator pointing to the given ViewEdge.

        Return type:
        :   `orientedViewEdgeIterator`

    nature
    :   The nature of this ViewVertex.

        Type:
        :   `Nature`

*class* freestyle.types.orientedViewEdgeIterator
:   Class hierarchy: `Iterator` > `orientedViewEdgeIterator`

    Class representing an iterator over oriented ViewEdges around a
    `ViewVertex`. This iterator allows a CCW iteration (in the image
    plane). An instance of an orientedViewEdgeIterator can only be
    obtained from a ViewVertex by calling edges_begin() or edges_end().

    __init__()

    __init__(*iBrother*)
    :   Creates an `orientedViewEdgeIterator` using either the
        default constructor or the copy constructor.

        Parameters:
        :   **iBrother** (`orientedViewEdgeIterator`) – An orientedViewEdgeIterator object.

    object
    :   The oriented ViewEdge (i.e., a tuple of the pointed ViewEdge and a boolean
        value) currently pointed to by this iterator. If the boolean value is true,
        the ViewEdge is incoming.

        Type:
        :   tuple[`ViewEdge`, bool]