
#######################
A3DGraphLinePatternData
#######################

.. c:struct:: A3DGraphLinePatternData

   2D line pattern descriptor.
   
   
      2.0
   
   
   ``A3DGraphStyleData``\ can hold a line pattern, which describes how lines are represented: continous, dashed, dotted or a mix of some.
   
   A line pattern is made of segments, which are cycled through in the order they are written in. Each segment is represented by a pair of ``A3DDouble``\ values:
   
   
   - The length of the line segment (the stroke)
   - The length of the spacing before the next segment is drawned (the blank)
   
   All segments are written sequentially in a C-Style array, ``m_pdLengths``\ , each of them consisting of its stroke/blank pair. Thus, when describing a line pattern consisting in *s*\ segments, the array has the following layout:
   
   **** \| **Stroke** \| **Blank**
   
   
   - Segment 0 \| 0 \| 1
   - Segment 1 \| 2 \| 3
   - Segment 2 \| 4 \| 5
   - ... \| ... \| ...
   - Segment *s-1* \| ... \| *i-1*
   
   The total number of elements in the array is *i*\ and is twice *s*\ .
   
   For example a continuous line segment can be described using any non-zero value for the stroke, and ``0.0``\ for the blank:``{5.0, 0.0}``\ . A dotted pattern would be described using a unit length for the stroke and a wider value for the blank (``{1.0, 5.0}``\ ) while the other way around would end up having a dashed pattern (``{5.0, 1.0}``\ ).
   
   Using any combinaison of those segments description would give a mixed pattern:``{1.0, 5.0, 5.0, 0.0, 5.0, 1.0}``\ .
   
   An ASCII representation of these patterns, repeated three times, would give:
   
   
   - *continuous*\ :``_______________``
   - \ *dotted*\ :``_ _ _``
   - \ *dashed*\ :``_____ _____ _____``
   - \ *mixed*\ :``_ __________ _ __________ _ __________``
   
   \ The actual length of each segment depends on the drawing implementation and the ``m_bRealLength``\ option (see below).
   
   ``m_dPhase``\ is a length value that offsets the starting position within the pattern. By default the value is ``0.0``\ (no offset).
   
   
      :c:struct:`~A3DGraphStyleData`
   
   
   
      :c:func:`~A3DGlobalGetGraphLinePatternData`
   
   
   
      :c:func:`~A3DGlobalInsertGraphLinePattern`
   
   
   
      :c:struct:`~A3DGraphPictureData`
   
   
   
      :c:struct:`~A3DGraphicsData`
   
   
   
   Index
   =====
   
   .. rubric:: Variables
   
   
   .. rst-class:: api-xref-list
   
   
   * :c:member:`~A3DGraphLinePatternData.m_uiNumberOfLengths`
   * :c:member:`~A3DGraphLinePatternData.m_pdLengths`
   * :c:member:`~A3DGraphLinePatternData.m_dPhase`
   * :c:member:`~A3DGraphLinePatternData.m_bRealLength`
   
   



.. rst-class:: kind-group kind-variable

.. rubric:: Variables
   :class: kind-group-title


.. c:member:: A3DUns32 A3DGraphLinePatternData.m_uiNumberOfLengths

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DUns32`
      
      The size of ``m_pdLengths``\ in bytes.
      



.. c:member:: A3DDouble* A3DGraphLinePatternData.m_pdLengths

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`\ \*
      
      The array of segments describing the pattern.
      



.. c:member:: A3DDouble A3DGraphLinePatternData.m_dPhase

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`
      
      Offset value defining the starting position of the pattern within the array.
      



.. c:member:: A3DBool A3DGraphLinePatternData.m_bRealLength

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DBool`
      
      If ``A3D_TRUE``\ , segments lengths are expressed in absolute values, using unit model file.
      




