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
|
}
|