
#######################
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. 
      




