# this works as a bash include
#
#PRIO 1.1
#COMM test Math::Geomet2dPoint
#COMM - perform arithmetics with overload operators
#
perl -e '
  use lib shift();  # give include precedence to code directory, perl -I would not work!
  use strict;
  use Math::Geomet2dPoint;
  my $pVec1 = Math::Geomet2dPoint->new(0.3, 1.5);
  printf "vector as string: %s -> operand #1\n", $pVec1->string(-fmt=>q(vector(%.1f,%.1f)));
  print  "-----\n";
  my $pVec2 = $pVec1 * 2.0;
  printf "vector stretch (operator, copy): %s -> operand #2\n",
    $pVec2->string(-fmt=>q(vector(%.1f,%.1f)));
  printf "vector control #1: %s\n", $pVec1->string(-fmt=>q(vector(%.1f,%.1f)));
  $pVec2 /= 2.0;
  printf "vector squeeze (operator): %s\n", $pVec2->string(-fmt=>q(vector(%.1f,%.1f)));
  $pVec2 *= 2.0;
  printf "vector stretch (operator): %s\n", $pVec2->string(-fmt=>q(vector(%.1f,%.1f)));
  print  "-----\n";
  my $pVec3 = $pVec1 + $pVec2;
  printf "vector addition (operator, copy): %s\n", $pVec3->string(-fmt=>q(vector(%.1f,%.1f)));
  printf "vector control #1: %s\n", $pVec1->string(-fmt=>q(vector(%.1f,%.1f)));
  printf "vector control #2: %s\n", $pVec2->string(-fmt=>q(vector(%.1f,%.1f)));
  $pVec3 -= $pVec2;
  printf "vector subtraction (operator): %s\n", $pVec3->string(-fmt=>q(vector(%.1f,%.1f)));
  printf "vector control #2: %s\n", $pVec2->string(-fmt=>q(vector(%.1f,%.1f)));
  print  "-----\n";
  my $pVec4 = $pVec1 - $pVec2;
  printf "vector subtraction (operator, copy): %s\n", $pVec4->string(-fmt=>q(vector(%.1f,%.1f)));
  printf "vector control #1: %s\n", $pVec1->string(-fmt=>q(vector(%.1f,%.1f)));
  printf "vector control #2: %s\n", $pVec2->string(-fmt=>q(vector(%.1f,%.1f)));
  $pVec4 += $pVec2;
  printf "vector addition (operator): %s\n", $pVec4->string(-fmt=>q(vector(%.1f,%.1f)));
  ' -- "$dircode"
