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 )