#!/usr/pkg/bin/perl 
use strict;
use warnings;
use GDS2;

my($VERSION);
$VERSION = "2023-03-30 01:47" ; # written by emacs time-stamp

## --------------------------------------------------------------------------------
##                        M A I N  R O U T I N E 
## --------------------------------------------------------------------------------
sub scribeCorner {                                                        
    my ($args) = @_;
    my ($E   ) =  $args -> {-E};	#
    my ($L   ) =  $args -> {-L};	#
    my ($W   ) =  $args -> {-W};	# 
    my ($G   ) =  $args -> {-G};	# gap
    my ($gds2File   ) =  $args -> {-gds2File};	# gap
    
    my $name = 'Corner';
    $gds2File -> printBgnstr ( -name => $name);
    $gds2File -> printBoundary
	( -xy => [ $G/2,      $G/2,  $G/2 + $E, $G/2, $G/2 + $E, $G/2 + $W, , 
                   $G/2 + $W, $G/2 +$W, 
		   $G/2 + $W, $G/2 +$L, 
		   $G/2     , $G/2 +$L, ]);
    $gds2File -> printEndstr ();
    return $name;
}
sub main {                                                        
    my $S = 12500;

    my $filename = $0;                              # ---  set filename with the same as this script
    $filename =~ s/^[0-9]+\.//;
    $filename =~ s/\.txt$//;                     # ---  Strip '.txt' part
                                                #     
    my $VERSION2 = $VERSION;
       $VERSION2 =~ s/ /-/;
       $VERSION2 =~ s/:/./; 
    my $gds_name = sprintf("%s-%s.gds", $filename, $VERSION2);
    print $gds_name, "\n";

    my $gds2File = new GDS2(-fileName=> '>'. $gds_name);

    $gds2File -> printInitLib(-name=>'LibraryName',
                          -uUnit =>  0.00025,
                          -dbUnit => 0.00025/1000000);



    my $corner = 
    scribeCorner ({ -L => 400, -W => 30, -G => 300, -E => 200, -gds2File => $gds2File});

    $gds2File -> printBgnstr( -name => 'top');
    $gds2File -> printSref ( -name => $corner, -xy => [0,0], -reflect => '0');
    $gds2File -> printSref ( -name => $corner, -xy => [0,0], -reflect => '1');
    $gds2File -> printSref ( -name => $corner, -xy => [0,0], -reflect => '1', -angle => 180);
    $gds2File -> printSref ( -name => $corner, -xy => [0,0], -reflect => '0', -angle => 180);

    $gds2File -> printEndstr ();

    $gds2File -> printEndlib();
}
main ();
__END__
(require 'time-stamp)
(add-hook 'write-file-hooks 'time-stamp)
(setq time-stamp-active t)
(setq time-stamp-time-zone "UTC")
(setq time-stamp-time-zone nil)
(setq time-stamp-format "%04y-%02m-%02d %02H:%02M");
(setq time-stamp-start "$VERSION = \"") ;
(setq time-stamp-end "\"") ;
(setq time-stamp-line-limit 20) ; ; default is 8
