CircuitLayout

 view release on metacpan or  search on metacpan

Examples/GDS2Tool/gds2tool  view on Meta::CPAN

use Tk::Table;
use Tk::HList; 
use Tk::ROText;
use Tk::ProgressBar;
use Tk::WorldCanvas;
use File::Basename;
use FileHandle;
use Parse::RecDescent;
use Cwd;

sub printUsage();
sub printVersion();
sub readGDS2;
my $G_homeDir = $ENV{'HOME'};

my $G_ICHOME;
BEGIN
{
    use constant ERROR   => 'ERROR:   '; #
    use constant WARNING => 'WARNING: '; #
    use constant NOTE    => 'NOTE:    '; #

Examples/GDS2Tool/gds2tool  view on Meta::CPAN

        -tags     => 'axis',
    );
    $canvas -> createLine(0, ($ycmin - $num), 0, ($ycmax + $num),
        -fill     => LightGrayColor,
        -tags     => 'axis',
    );
}
################################################################################

################################################################################ 
sub printVersion()
{
    print $VERSION;
    exit 1;
}
################################################################################

################################################################################ 
sub printUsage()
{
    print <<EOHELP;
  gds2tool ver $VERSION rev $REVISION
    
Usage:
  gds2tool [options] gds2File 
      
Options:
  -cell <cellName>
    specify cell to read

Examples/GDS2Tool/gds2tool  view on Meta::CPAN

sub pan
{
    my ($canvas, $x, $y) = @_;

    my ($xDataPt, $yDataPt) = $canvas -> worldxy($x,$y);
    $canvas -> center($xDataPt, $yDataPt);
    $G_statusText = "Panned to ".sprintf("%0.${pp}f %0.${pp}f",$xDataPt,$yDataPt);
}
################################################################################

sub round2Grid($$)
{
    my $input = shift;
    my $round2grid = shift;

    my $scaleNum = 10000;

    $input = int($input * $scaleNum);
    $round2grid = int($round2grid * $scaleNum);
    my $halfGrid = $round2grid/2;
    my $modResult = $input % $round2grid;

Examples/GDS2Tool/gds2tool  view on Meta::CPAN

}
################################################################################

sub unSelectPoint
{
    my ($canvas) = @_;
    $canvas -> selectPoint(FALSE,FALSE);
}
################################################################################

sub selectPoint($$;$)
{
    my ($canvas,$unSelectPrevious,$select) = @_;
    $select = TRUE if (! defined $select);
    my ($x,$y) = $canvas -> eventLocation();
#my $id = $G_canvas -> find('closest', $x, $y, 0, 'layout=true&&selected=false');
#my $id = $G_canvas -> find('closest', $x, $y, 1, '(layout=true^visible=1)');
    my $id = $G_canvas -> find('closest', $x, $y, 5, 'layout=true');
#my $id = $G_canvas -> find('closest', $x, $y, 0, 'layout=true');
    updateInfoText(FALSE,'') if ($unSelectPrevious);
    if (defined $id)

lib/CircuitLayout.pm  view on Meta::CPAN

    }
    $self -> {'PrintPrecision'};
}
################################################################

=head1 CircuitLayout::Coord::coordSubtract

=cut

####### CircuitLayout::Coord
sub coordSubtract($$$)
{
    my $self = shift;
    my $coordA = shift;
    my $coordB = shift;
    my $x = $coordA -> x;
    my $y = $coordA -> y;
    $x -= $coordB -> x;
    $y -= $coordB -> y;
    my $result = new CircuitLayout::Coord(-x=>$x,-y=>$y);
    $result;

lib/CircuitLayout.pm  view on Meta::CPAN

    $self -> {'Y'} = $y;
    $self;
}
################################################################

=head1 CircuitLayout::Coord::snapNum

=cut

####### CircuitLayout::Coord
sub snapNum($$$)
{
    my $num=shift;
    my $snap=shift;
    my $resolution=shift;
    $snap =~ s|0+$||;
    my $snapLength = length("$snap");
    my $lean=1; ##init
    $lean = -1 if($num < 0);
    $num = int(($num*(1/$resolution))+0.5);
    ## snap to grid..   

lib/CircuitLayout.pm  view on Meta::CPAN

                $edgeNum = $x1 < $x2 ? $x1 : $x2;
                $num = $edgeNum if (! defined $num);
                $num = $edgeNum if ($edgeNum < $num);
            }
        }
    }
    $num;
}
################################################################

sub triangleArea($$$$$$)
{
    my ($x0,$y0,$x1,$y1,$x2,$y2) = @_;

    ( ($x1 - $x0) * ($y2 - $y0) -
      ($x2 - $x0) * ($y1 - $y0)
    ) / 2.0;
}
################################################################

sub area

lib/CircuitLayout.pm  view on Meta::CPAN

package CircuitLayout;
{
use base ('CircuitLayout::Coord','CircuitLayout::Edge','CircuitLayout::Rectangle','CircuitLayout::Text'); ## inherit some stuff
# This is the default class for the CircuitLayout object to use when all else fails.
$CircuitLayout::DefaultClass = 'CircuitLayout' unless defined $CircuitLayout::DefaultClass;

=head1 CircuitLayout::version

=cut

sub version()
{
    return $VERSION;
}
################################################################################

=head1 CircuitLayout::revision

=cut

sub revision()
{
    return $revision;
}
################################################################################

sub distance
{
    my ($x1,$y1,$x2,$y2) = @_;
    sqrt( (($x2 - $x1)**2) + (($y2 - $y1)**2) );
}



( run in 0.275 second using v1.01-cache-2.11-cpan-1f129e94a17 )