| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GetLinePolygon ( | 
|   NumberVector vect | 
| ) as internal[Polygon] id:Method_LibOpt_FormComponentGraph_GetLinePolygon | 
| { | 
|   #keys: '[139164.3.1008855746]' | 
|   Body: | 
|   [* | 
|     poly := construct( Polygon ); | 
|      | 
|     scale_x := ValueHolderScaleX.Data(); | 
|     scale_y := ValueHolderScaleY.Data(); | 
|      | 
|     scale := minvalue( scale_x, scale_y ); | 
|      | 
|     for( i := 0; i < vect.Size() - 3; i := i + 2 ) | 
|     { | 
|       poly.AddPoint( vect.Get( i ), vect.Get( i + 1 ) ); | 
|     }                      | 
|     x := vect.Get( vect.Size() - 2 ); | 
|     y := vect.Get( vect.Size() - 1 ); | 
|      | 
|     arrow_size := maxvalue( 3, 12 - maxvalue( 2, 2 / scale ) ); | 
|     arrow_size_x := [Number] ( arrow_size * scale / 2 ); | 
|     arrow_size_y := [Number] ( arrow_size * scale ); | 
|      | 
|     poly.AddPoint( x, y - arrow_size_y );      | 
|     poly.AddPoint( x - arrow_size_x, y - arrow_size_y ); | 
|     poly.AddPoint( x, y ); | 
|     poly.AddPoint( x + arrow_size_x, y - arrow_size_y ); | 
|     poly.AddPoint( x, y - arrow_size_y ); | 
|     for( i := vect.Size() - 4; i > 1; i := i - 2 ) | 
|     { | 
|       poly.AddPoint( vect.Get( i ), vect.Get( i + 1 ) ); | 
|     } | 
|      | 
|      | 
|     return & poly; | 
|   *] | 
|   Declarative: true | 
|   ReturnsOwning: true | 
| } |