y1
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 17
Data::Region 1.0
Data::Region Perl module can define hierarchical areas with behaviors. more>>
Data::Region Perl module can define hierarchical areas with behaviors.
SYNOPSIS
use Data::Region;
$r = Data::Region->new( 8.5, 11, { data => PageObj->new() } );
$r->data( PageObj->new() );
foreach my $c ( $r->subdivide(2.5,3) ) {
$a = $c->area(0.25,0.25, 2.25,2.75);
$a2 = $c->area(0.25,0.25, -0.25,-0.25); # as offset from lower right
($t,$m,$b) = $a->split_vertical(2,5,1); # sequential heights
($t,$m,$b) = $a->split_vertical_abs(0,2,7); # absolute offsets
($l,$r) = $a->split_horizontal(2); # $l gets width of 2, $r gets the rest
my($x1,$y1,$x2,$y2) = $a->coords();
my $data = $a->data(); # data inherits from parent, if not set
$a->action( sub { $data->setfont("Times-Bold", 10);
$data->text($x1,$y1, "Some Text");
$data->line( $_[0]->coords() ); # the non-closure way
} );
}
$r->render(); # heirarchically perform all the actions
# Get some info about a region:
($w,$h) = ( $a->width(), $a->height() );
($x1,$y1, $x2,$y2) = $a->coords();
($x1,$y1) = $a->top_left();
($x2,$y1) = $a->top_right();
($x1,$y2) = $a->bottom_left();
($x2,$y2) = $a->bottom_right();
Data::Region allows you to easily define a set of nested (2-dimensional) areas, defined by related coordinates, and to associate actions with them. The actions can then be performed hierarchically from any root of the tree.
Data::Region was written to provide an easy way to do simple page layout, but has, perhaps, more general uses.
<<lessSYNOPSIS
use Data::Region;
$r = Data::Region->new( 8.5, 11, { data => PageObj->new() } );
$r->data( PageObj->new() );
foreach my $c ( $r->subdivide(2.5,3) ) {
$a = $c->area(0.25,0.25, 2.25,2.75);
$a2 = $c->area(0.25,0.25, -0.25,-0.25); # as offset from lower right
($t,$m,$b) = $a->split_vertical(2,5,1); # sequential heights
($t,$m,$b) = $a->split_vertical_abs(0,2,7); # absolute offsets
($l,$r) = $a->split_horizontal(2); # $l gets width of 2, $r gets the rest
my($x1,$y1,$x2,$y2) = $a->coords();
my $data = $a->data(); # data inherits from parent, if not set
$a->action( sub { $data->setfont("Times-Bold", 10);
$data->text($x1,$y1, "Some Text");
$data->line( $_[0]->coords() ); # the non-closure way
} );
}
$r->render(); # heirarchically perform all the actions
# Get some info about a region:
($w,$h) = ( $a->width(), $a->height() );
($x1,$y1, $x2,$y2) = $a->coords();
($x1,$y1) = $a->top_left();
($x2,$y1) = $a->top_right();
($x1,$y2) = $a->bottom_left();
($x2,$y2) = $a->bottom_right();
Data::Region allows you to easily define a set of nested (2-dimensional) areas, defined by related coordinates, and to associate actions with them. The actions can then be performed hierarchically from any root of the tree.
Data::Region was written to provide an easy way to do simple page layout, but has, perhaps, more general uses.
Download (0.008MB)
Added: 2007-08-03 License: Perl Artistic License Price:
812 downloads
VTKRendering 4.0.001
VTKRendering is a Perl interface to VTKRendering library. more>>
VTKRendering is a Perl interface to VTKRendering library.
Graphics::VTK::OpenGLRenderWindow
Inherits from RenderWindow
Functions Supported for this class by the PerlVTK module: (To find more about their use check the VTK documentation at http://www.kitware.com.)
const char *GetClassName ();
int GetDepthBufferSize ();
static int GetGlobalMaximumNumberOfMultiSamples ();
int GetMultiSamples ();
void MakeCurrent () = 0;
virtual void OpenGLInit ();
void RegisterTextureResource (GLuint id);
static void SetGlobalMaximumNumberOfMultiSamples (int val);
void SetMultiSamples (int );
virtual void StereoUpdate ();
vtkOpenGLRenderWindow Unsupported Funcs:
Functions which are not supported supported for this class by the PerlVTK module.
virtual unsigned char *GetPixelData (int x, int y, int x2, int y2, int front);
Cant Handle unsigned char * return type without a hint
virtual unsigned char *GetRGBACharPixelData (int x, int y, int x2, int y2, int front);
Cant Handle unsigned char * return type without a hint
virtual float *GetRGBAPixelData (int x, int y, int x2, int y2, int front);
Cant Handle float * return type without a hint
virtual float *GetZbufferData (int x1, int y1, int x2, int y2);
Cant Handle float * return type without a hint
void PrintSelf (ostream &os, vtkIndent indent);
I/O Streams not Supported yet
virtual void ReleaseRGBAPixelData (float *data);
Dont know the size of pointer arg number 1
virtual void SetPixelData (int x, int y, int x2, int y2, unsigned char *, int front);
Dont know the size of pointer arg number 5
virtual void SetRGBACharPixelData (int x, int y, int x2, int y2, unsigned char *, int front, int blend);
Dont know the size of pointer arg number 5
virtual void SetRGBAPixelData (int x, int y, int x2, int y2, float *, int front, int blend);
Dont know the size of pointer arg number 5
virtual void SetZbufferData (int x1, int y1, int x2, int y2, float *buffer);
Dont know the size of pointer arg number 5
Graphics::VTK::AbstractMapper3D
Inherits from AbstractMapper
Functions Supported for this class by the PerlVTK module: (To find more about their use check the VTK documentation at http://www.kitware.com.)
virtual float *GetBounds () = 0;
(Returns a 6-element Perl list)
float *GetCenter ();
(Returns a 3-element Perl list)
const char *GetClassName ();
float GetLength ();
virtual int IsARayCastMapper ();
virtual int IsARenderIntoImageMapper ();
virtual void Update () = 0;
vtkAbstractMapper3D Unsupported Funcs:
Functions which are not supported supported for this class by the PerlVTK module.
virtual void GetBounds (float bounds[6]);
Cant handle methods with single array args (like a[3]) in overloaded methods yet.
void PrintSelf (ostream &os, vtkIndent indent);
I/O Streams not Supported yet
Graphics::VTK::AbstractPicker
Inherits from Object
Functions Supported for this class by the PerlVTK module: (To find more about their use check the VTK documentation at http://www.kitware.com.)
void AddPickList (vtkProp *);
void DeletePickList (vtkProp *);
const char *GetClassName ();
int GetPickFromList ();
vtkPropCollection *GetPickList ();
float *GetPickPosition ();
(Returns a 3-element Perl list)
vtkRenderer *GetRenderer ();
float *GetSelectionPoint ();
(Returns a 3-element Perl list)
void InitializePickList ();
virtual int Pick (float selectionX, float selectionY, float selectionZ, vtkRenderer *renderer) = 0;
void PickFromListOff ();
void PickFromListOn ();
void SetEndPickMethod (void (*func)(void *) , void *arg);
void SetPickFromList (int );
void SetPickMethod (void (*func)(void *) , void *arg);
void SetStartPickMethod (void (*func)(void *) , void *arg);
vtkAbstractPicker Unsupported Funcs:
Functions which are not supported supported for this class by the PerlVTK module.
int Pick (float selectionPt[3], vtkRenderer *ren);
Dont know the size of pointer arg number 1
void PrintSelf (ostream &os, vtkIndent indent);
I/O Streams not Supported yet
void SetEndPickMethodArgDelete (void (*func)(void *) );
No TCL interface is provided by VTK, so we arent going to provide one either.
void SetPickMethodArgDelete (void (*func)(void *) );
No TCL interface is provided by VTK, so we arent going to provide one either.
void SetStartPickMethodArgDelete (void (*func)(void *) );
No TCL interface is provided by VTK, so we arent going to provide one either.
<<lessGraphics::VTK::OpenGLRenderWindow
Inherits from RenderWindow
Functions Supported for this class by the PerlVTK module: (To find more about their use check the VTK documentation at http://www.kitware.com.)
const char *GetClassName ();
int GetDepthBufferSize ();
static int GetGlobalMaximumNumberOfMultiSamples ();
int GetMultiSamples ();
void MakeCurrent () = 0;
virtual void OpenGLInit ();
void RegisterTextureResource (GLuint id);
static void SetGlobalMaximumNumberOfMultiSamples (int val);
void SetMultiSamples (int );
virtual void StereoUpdate ();
vtkOpenGLRenderWindow Unsupported Funcs:
Functions which are not supported supported for this class by the PerlVTK module.
virtual unsigned char *GetPixelData (int x, int y, int x2, int y2, int front);
Cant Handle unsigned char * return type without a hint
virtual unsigned char *GetRGBACharPixelData (int x, int y, int x2, int y2, int front);
Cant Handle unsigned char * return type without a hint
virtual float *GetRGBAPixelData (int x, int y, int x2, int y2, int front);
Cant Handle float * return type without a hint
virtual float *GetZbufferData (int x1, int y1, int x2, int y2);
Cant Handle float * return type without a hint
void PrintSelf (ostream &os, vtkIndent indent);
I/O Streams not Supported yet
virtual void ReleaseRGBAPixelData (float *data);
Dont know the size of pointer arg number 1
virtual void SetPixelData (int x, int y, int x2, int y2, unsigned char *, int front);
Dont know the size of pointer arg number 5
virtual void SetRGBACharPixelData (int x, int y, int x2, int y2, unsigned char *, int front, int blend);
Dont know the size of pointer arg number 5
virtual void SetRGBAPixelData (int x, int y, int x2, int y2, float *, int front, int blend);
Dont know the size of pointer arg number 5
virtual void SetZbufferData (int x1, int y1, int x2, int y2, float *buffer);
Dont know the size of pointer arg number 5
Graphics::VTK::AbstractMapper3D
Inherits from AbstractMapper
Functions Supported for this class by the PerlVTK module: (To find more about their use check the VTK documentation at http://www.kitware.com.)
virtual float *GetBounds () = 0;
(Returns a 6-element Perl list)
float *GetCenter ();
(Returns a 3-element Perl list)
const char *GetClassName ();
float GetLength ();
virtual int IsARayCastMapper ();
virtual int IsARenderIntoImageMapper ();
virtual void Update () = 0;
vtkAbstractMapper3D Unsupported Funcs:
Functions which are not supported supported for this class by the PerlVTK module.
virtual void GetBounds (float bounds[6]);
Cant handle methods with single array args (like a[3]) in overloaded methods yet.
void PrintSelf (ostream &os, vtkIndent indent);
I/O Streams not Supported yet
Graphics::VTK::AbstractPicker
Inherits from Object
Functions Supported for this class by the PerlVTK module: (To find more about their use check the VTK documentation at http://www.kitware.com.)
void AddPickList (vtkProp *);
void DeletePickList (vtkProp *);
const char *GetClassName ();
int GetPickFromList ();
vtkPropCollection *GetPickList ();
float *GetPickPosition ();
(Returns a 3-element Perl list)
vtkRenderer *GetRenderer ();
float *GetSelectionPoint ();
(Returns a 3-element Perl list)
void InitializePickList ();
virtual int Pick (float selectionX, float selectionY, float selectionZ, vtkRenderer *renderer) = 0;
void PickFromListOff ();
void PickFromListOn ();
void SetEndPickMethod (void (*func)(void *) , void *arg);
void SetPickFromList (int );
void SetPickMethod (void (*func)(void *) , void *arg);
void SetStartPickMethod (void (*func)(void *) , void *arg);
vtkAbstractPicker Unsupported Funcs:
Functions which are not supported supported for this class by the PerlVTK module.
int Pick (float selectionPt[3], vtkRenderer *ren);
Dont know the size of pointer arg number 1
void PrintSelf (ostream &os, vtkIndent indent);
I/O Streams not Supported yet
void SetEndPickMethodArgDelete (void (*func)(void *) );
No TCL interface is provided by VTK, so we arent going to provide one either.
void SetPickMethodArgDelete (void (*func)(void *) );
No TCL interface is provided by VTK, so we arent going to provide one either.
void SetStartPickMethodArgDelete (void (*func)(void *) );
No TCL interface is provided by VTK, so we arent going to provide one either.
Download (0.66MB)
Added: 2007-07-17 License: Perl Artistic License Price:
829 downloads
Chart::EPS_graph 0.01d
Chart::EPS_graph creates line graphs in PostScript as *.eps format. more>>
Chart::EPS_graph creates line graphs in PostScript as *.eps format.
SYNOPSIS
# Create anew a 600 x 600 points (not pixels!) EPS file
my $eps = Chart::EPS_graph->new(600, 600);
# Choose minimum required display info
$eps->set(
label_top => Graph Main Title,
label_y1 => Y1 Axis Measure (Units),
label_y2 => Y2 Axis Measure (Units),
label_x => X Axis Measure (Units),
);
# Choose 6 of 13 named chans, 4 at left, 2 at right
$eps->set(
names => @all_13_name_strings,
data => @all_13_data_arefs,
y1 => [7, 8, 10, 11],
y2 => [9, 12],
);
# Choose optional graph features
$eps->set(
label_y1_2 => Extra Y1 Axis Info,
label_y2_2 => Extra Y2 Axis Info,
label_x_2 => Extra X Axis Info,
# Any common browser color no matter how hideous.
bg_color => DarkOliveGreen,
fg_color => HotPink,
web_colors => [Crimson, Lime, Indigo, Gold, Snow, Aqua],
# Any known I font no matter how illegible
font_name => ZapfChancery-MediumItalic,
font_size => 18,
# See POD about this one. But in brief:
# If set to "1" channel innumeration gaps will be closed.
# If set to "0" (the default) they will be left as they are.
close_gap => 0,
# If the 0th channel is not for the X axis (the default) then the
# data point count is used as the X axis, which you may scale.
# So if X were Time in seconds, with no 0th channel having acutally
# recorded it, but each data point were known to be 0.5 seconds...
$self->{x_is_zeroth} = 0; # Boolean, so 1 or 0.
$self->{x_scale} = 2; # Have 10th datapoint show as 20, etc.
);
# Write output as EPS
$eps->write_eps( cwd() . /whatever.eps ); # Write to a file.
# View, convert or edit the EPS output
$eps->display(); # Display in viewer (autodetects gv or gsview.exe).
$eps->display(GS); # Convert to PNG via Ghostscript.
$eps->display(GIMP); # Open for editng in The GIMP.
<<lessSYNOPSIS
# Create anew a 600 x 600 points (not pixels!) EPS file
my $eps = Chart::EPS_graph->new(600, 600);
# Choose minimum required display info
$eps->set(
label_top => Graph Main Title,
label_y1 => Y1 Axis Measure (Units),
label_y2 => Y2 Axis Measure (Units),
label_x => X Axis Measure (Units),
);
# Choose 6 of 13 named chans, 4 at left, 2 at right
$eps->set(
names => @all_13_name_strings,
data => @all_13_data_arefs,
y1 => [7, 8, 10, 11],
y2 => [9, 12],
);
# Choose optional graph features
$eps->set(
label_y1_2 => Extra Y1 Axis Info,
label_y2_2 => Extra Y2 Axis Info,
label_x_2 => Extra X Axis Info,
# Any common browser color no matter how hideous.
bg_color => DarkOliveGreen,
fg_color => HotPink,
web_colors => [Crimson, Lime, Indigo, Gold, Snow, Aqua],
# Any known I font no matter how illegible
font_name => ZapfChancery-MediumItalic,
font_size => 18,
# See POD about this one. But in brief:
# If set to "1" channel innumeration gaps will be closed.
# If set to "0" (the default) they will be left as they are.
close_gap => 0,
# If the 0th channel is not for the X axis (the default) then the
# data point count is used as the X axis, which you may scale.
# So if X were Time in seconds, with no 0th channel having acutally
# recorded it, but each data point were known to be 0.5 seconds...
$self->{x_is_zeroth} = 0; # Boolean, so 1 or 0.
$self->{x_scale} = 2; # Have 10th datapoint show as 20, etc.
);
# Write output as EPS
$eps->write_eps( cwd() . /whatever.eps ); # Write to a file.
# View, convert or edit the EPS output
$eps->display(); # Display in viewer (autodetects gv or gsview.exe).
$eps->display(GS); # Convert to PNG via Ghostscript.
$eps->display(GIMP); # Open for editng in The GIMP.
Download (0.024MB)
Added: 2006-10-27 License: Perl Artistic License Price:
1093 downloads
Chart::Scientific 0.16
Chart::Scientific is a Perl module that can generate simple 2-D scientific plots with logging, errbars, etc. more>>
Chart::Scientific is a Perl module that can generate simple 2-D scientific plots with logging, errbars, etc.
SYNOPSIS
Procedural interface
use Chart::Scientific qw/make_plot/;
make_plot ( x_data => @x_values, y_data => @yvalues );
The subroutine make_plot creates a Chart::Scientific object passing along every argument it was given. See OPTIONS below for a full list of allowed arguments.
Object Oriented interface
Plot data from two arrays:
use Chart::Scientific;
my $plt = Chart::Scientific->new (
x_data => @x_values,
y_data => @y_values,
);
$plt->plot ();
or piddles:
use Chart::Scientific;
my $plt = Chart::Scientific->new (
x_data => $x_pdl,
y_data => $y_pdl,
);
$plt->plot ();
Plot data from an arbitrarily-delimitted file (the data in columns "vel" and "acc" vs the data in the column "time", with errorbars from the columns "vel_err" and "acc_err"):
my $plt = Chart::Scientific->new (
filename => data.tab-separated,
split => t,
x_col => time,
y_col => vel,acc,
err_col => vel_err,acc_err,
x_label => "time",
y_label => "velocity and acceleration",
);
$plt->plot ();
Plot data in arrays:
my $plt = Chart::Scientific->new (
x_data => @height,
y_data => [ @weight, @body_mass_index ],
);
$plt->plot ();
Plot data in pdls:
my $plt = Chart::Scientific->new (
x_data => $pdl_x,
y_data => [ $pdl_y1, $pdl_y2 ],
);
$plt->plot ();
Plot the above data to a file:
my $plt = Chart::Scientific->new (
x_data => $pdl_x,
y_data => [ $pdl_y1, $pdl_y2 ],
device => myplot.ps/cps,
);
$plt->plot ();
Generate multiple plots with the same object:
my @x1 = 10..19;
my @y1 = 20..29;
my @y2 = 50..59;
my $plt = Chart::Scientific->new (
x_data => @x1,
y_data => @y1,
x_label => "test x",
y_label => "test y",
);
$plt->setvars ( title => testa, device => 1/xs );
$plt->plot ();
$plt->setvars ( title => testb, device => 2/xs );
$plt->plot ();
<<lessSYNOPSIS
Procedural interface
use Chart::Scientific qw/make_plot/;
make_plot ( x_data => @x_values, y_data => @yvalues );
The subroutine make_plot creates a Chart::Scientific object passing along every argument it was given. See OPTIONS below for a full list of allowed arguments.
Object Oriented interface
Plot data from two arrays:
use Chart::Scientific;
my $plt = Chart::Scientific->new (
x_data => @x_values,
y_data => @y_values,
);
$plt->plot ();
or piddles:
use Chart::Scientific;
my $plt = Chart::Scientific->new (
x_data => $x_pdl,
y_data => $y_pdl,
);
$plt->plot ();
Plot data from an arbitrarily-delimitted file (the data in columns "vel" and "acc" vs the data in the column "time", with errorbars from the columns "vel_err" and "acc_err"):
my $plt = Chart::Scientific->new (
filename => data.tab-separated,
split => t,
x_col => time,
y_col => vel,acc,
err_col => vel_err,acc_err,
x_label => "time",
y_label => "velocity and acceleration",
);
$plt->plot ();
Plot data in arrays:
my $plt = Chart::Scientific->new (
x_data => @height,
y_data => [ @weight, @body_mass_index ],
);
$plt->plot ();
Plot data in pdls:
my $plt = Chart::Scientific->new (
x_data => $pdl_x,
y_data => [ $pdl_y1, $pdl_y2 ],
);
$plt->plot ();
Plot the above data to a file:
my $plt = Chart::Scientific->new (
x_data => $pdl_x,
y_data => [ $pdl_y1, $pdl_y2 ],
device => myplot.ps/cps,
);
$plt->plot ();
Generate multiple plots with the same object:
my @x1 = 10..19;
my @y1 = 20..29;
my @y2 = 50..59;
my $plt = Chart::Scientific->new (
x_data => @x1,
y_data => @y1,
x_label => "test x",
y_label => "test y",
);
$plt->setvars ( title => testa, device => 1/xs );
$plt->plot ();
$plt->setvars ( title => testb, device => 2/xs );
$plt->plot ();
Download (0.016MB)
Added: 2007-04-24 License: Perl Artistic License Price:
913 downloads
Gtk2::CV::ImageWindow 1.4
Gtk2::CV::ImageWindow is a window widget displaying an image or other media. more>>
Gtk2::CV::ImageWindow is a window widget displaying an image or other media.
SYNOPSIS
use Gtk2::CV::ImageWindow;
METHODS
$img->set_image ($gdk_pixbuf[, $type])
Replace the currently-viewed image by the given pixbuf.
$img->clear_image
Removes the current image (usually replacing it by the default image).
$img->load_image ($path)
Tries to load the given file (if it is an image), or embeds mplayer (if mplayer supports it).
$img->resize_maxpect
Resize the image so it is maximally large.
$img->resize ($width, $height)
Resize the image window to the given size.
$img->uncrop
Undo any cropping; Show the full image.
$img->crop ($x1, $y1, $x2, $y2)
Crop the image to the specified rectangle.
<<lessSYNOPSIS
use Gtk2::CV::ImageWindow;
METHODS
$img->set_image ($gdk_pixbuf[, $type])
Replace the currently-viewed image by the given pixbuf.
$img->clear_image
Removes the current image (usually replacing it by the default image).
$img->load_image ($path)
Tries to load the given file (if it is an image), or embeds mplayer (if mplayer supports it).
$img->resize_maxpect
Resize the image so it is maximally large.
$img->resize ($width, $height)
Resize the image window to the given size.
$img->uncrop
Undo any cropping; Show the full image.
$img->crop ($x1, $y1, $x2, $y2)
Crop the image to the specified rectangle.
Download (0.12MB)
Added: 2007-05-29 License: Perl Artistic License Price:
878 downloads
Tk_CreateItemType 804.027
Tk_CreateItemType is a Perl module that define new kind of canvas item. more>>
Tk_CreateItemType is a Perl module that define new kind of canvas item.
SYNOPSIS
#include
Tk_CreateItemType(typePtr)
Tk_ItemType * Tk_GetItemTypes()
ARGUMENTS
Tk_ItemType *typePtr (in)
Structure that defines the new type of canvas item.
INTRODUCTION
Tk_CreateItemType is invoked to define a new kind of canvas item described by the typePtr argument. An item type corresponds to a particular value of the type argument to the create method for canvases, and the code that implements a canvas item type is called a type manager. Tk defines several built-in item types, such as rectangle and text and image, but Tk_CreateItemType allows additional item types to be defined. Once Tk_CreateItemType returns, the new item type may be used in new or existing canvas widgets just like the built-in item types.
Tk_GetItemTypes returns a pointer to the first in the list of all item types currently defined for canvases. The entries in the list are linked together through their nextPtr fields, with the end of the list marked by a NULL nextPtr.
You may find it easier to understand the rest of this manual entry by looking at the code for an existing canvas item type such as bitmap (file tkCanvBmap.c) or text (tkCanvText.c). The easiest way to create a new type manager is to copy the code for an existing type and modify it for the new type.
Tk provides a number of utility procedures for the use of canvas type managers, such as Tk_CanvasCoords and Tk_CanvasPsColor; these are described in separate manual entries.
DATA STRUCTURES
A type manager consists of a collection of procedures that provide a standard set of operations on items of that type. The type manager deals with three kinds of data structures. The first data structure is a Tk_ItemType; it contains information such as the name of the type and pointers to the standard procedures implemented by the type manager:
typedef struct Tk_ItemType {
char *name;
int itemSize;
Tk_ItemCreateProc *createProc;
Tk_ConfigSpec *configSpecs;
Tk_ItemConfigureProc *configProc;
Tk_ItemCoordProc *coordProc;
Tk_ItemDeleteProc *deleteProc;
Tk_ItemDisplayProc *displayProc;
int alwaysRedraw;
Tk_ItemPointProc *pointProc;
Tk_ItemAreaProc *areaProc;
Tk_ItemPostscriptProc *postscriptProc;
Tk_ItemScaleProc *scaleProc;
Tk_ItemTranslateProc *translateProc;
Tk_ItemIndexProc *indexProc;
Tk_ItemCursorProc *icursorProc;
Tk_ItemSelectionProc *selectionProc;
Tk_ItemInsertProc *insertProc;
Tk_ItemDCharsProc *dCharsProc;
Tk_ItemType *nextPtr;
} Tk_ItemType;
The fields of a Tk_ItemType structure are described in more detail later in this manual entry. When Tk_CreateItemType is called, its typePtr argument must point to a structure with all of the fields initialized except nextPtr, which Tk sets to link all the types together into a list. The structure must be in permanent memory (either statically allocated or dynamically allocated but never freed); Tk retains a pointer to this structure.
The second data structure manipulated by a type manager is an item record. For each item in a canvas there exists one item record. All of the items of a given type generally have item records with the same structure, but different types usually have different formats for their item records. The first part of each item record is a header with a standard structure defined by Tk via the type Tk_Item; the rest of the item record is defined by the type manager. A type manager must define its item records with a Tk_Item as the first field. For example, the item record for bitmap items is defined as follows:
typedef struct BitmapItem {
Tk_Item header;
double x, y;
Tk_Anchor anchor;
Pixmap bitmap;
XColor *fgColor;
XColor *bgColor;
GC gc;
} BitmapItem;
The header substructure contains information used by Tk to manage the item, such as its identifier, its tags, its type, and its bounding box. The fields starting with x belong to the type manager: Tk will never read or write them. The type manager should not need to read or write any of the fields in the header except for four fields whose names are x1, y1, x2, and y2. These fields give a bounding box for the items using integer canvas coordinates: the item should not cover any pixels with x-coordinate lower than x1 or y-coordinate lower than y1, nor should it cover any pixels with x-coordinate greater than or equal to x2 or y-coordinate greater than or equal to y2. It is up to the type manager to keep the bounding box up to date as the item is moved and reconfigured.
Whenever Tk calls a procedure in a type manager it passes in a pointer to an item record. The argument is always passed as a pointer to a Tk_Item; the type manager will typically cast this into a pointer to its own specific type, such as BitmapItem.
The third data structure used by type managers has type Tk_Canvas; it serves as an opaque handle for the canvas widget as a whole. Type managers need not know anything about the contents of this structure. A Tk_Canvas handle is typically passed in to the procedures of a type manager, and the type manager can pass the handle back to library procedures such as Tk_CanvasTkwin to fetch information about the canvas.
name
This section and the ones that follow describe each of the fields in a Tk_ItemType structure in detail. The name field provides a string name for the item type. Once Tk_CreateImageType returns, this name may be used in create methods to create items of the new type. If there already existed an item type by this name then the new item type replaces the old one.
itemSize
typePtr->itemSize gives the size in bytes of item records of this type, including the Tk_Item header. Tk uses this size to allocate memory space for items of the type. All of the item records for a given type must have the same size. If variable length fields are needed for an item (such as a list of points for a polygon), the type manager can allocate a separate object of variable length and keep a pointer to it in the item record.
<<lessSYNOPSIS
#include
Tk_CreateItemType(typePtr)
Tk_ItemType * Tk_GetItemTypes()
ARGUMENTS
Tk_ItemType *typePtr (in)
Structure that defines the new type of canvas item.
INTRODUCTION
Tk_CreateItemType is invoked to define a new kind of canvas item described by the typePtr argument. An item type corresponds to a particular value of the type argument to the create method for canvases, and the code that implements a canvas item type is called a type manager. Tk defines several built-in item types, such as rectangle and text and image, but Tk_CreateItemType allows additional item types to be defined. Once Tk_CreateItemType returns, the new item type may be used in new or existing canvas widgets just like the built-in item types.
Tk_GetItemTypes returns a pointer to the first in the list of all item types currently defined for canvases. The entries in the list are linked together through their nextPtr fields, with the end of the list marked by a NULL nextPtr.
You may find it easier to understand the rest of this manual entry by looking at the code for an existing canvas item type such as bitmap (file tkCanvBmap.c) or text (tkCanvText.c). The easiest way to create a new type manager is to copy the code for an existing type and modify it for the new type.
Tk provides a number of utility procedures for the use of canvas type managers, such as Tk_CanvasCoords and Tk_CanvasPsColor; these are described in separate manual entries.
DATA STRUCTURES
A type manager consists of a collection of procedures that provide a standard set of operations on items of that type. The type manager deals with three kinds of data structures. The first data structure is a Tk_ItemType; it contains information such as the name of the type and pointers to the standard procedures implemented by the type manager:
typedef struct Tk_ItemType {
char *name;
int itemSize;
Tk_ItemCreateProc *createProc;
Tk_ConfigSpec *configSpecs;
Tk_ItemConfigureProc *configProc;
Tk_ItemCoordProc *coordProc;
Tk_ItemDeleteProc *deleteProc;
Tk_ItemDisplayProc *displayProc;
int alwaysRedraw;
Tk_ItemPointProc *pointProc;
Tk_ItemAreaProc *areaProc;
Tk_ItemPostscriptProc *postscriptProc;
Tk_ItemScaleProc *scaleProc;
Tk_ItemTranslateProc *translateProc;
Tk_ItemIndexProc *indexProc;
Tk_ItemCursorProc *icursorProc;
Tk_ItemSelectionProc *selectionProc;
Tk_ItemInsertProc *insertProc;
Tk_ItemDCharsProc *dCharsProc;
Tk_ItemType *nextPtr;
} Tk_ItemType;
The fields of a Tk_ItemType structure are described in more detail later in this manual entry. When Tk_CreateItemType is called, its typePtr argument must point to a structure with all of the fields initialized except nextPtr, which Tk sets to link all the types together into a list. The structure must be in permanent memory (either statically allocated or dynamically allocated but never freed); Tk retains a pointer to this structure.
The second data structure manipulated by a type manager is an item record. For each item in a canvas there exists one item record. All of the items of a given type generally have item records with the same structure, but different types usually have different formats for their item records. The first part of each item record is a header with a standard structure defined by Tk via the type Tk_Item; the rest of the item record is defined by the type manager. A type manager must define its item records with a Tk_Item as the first field. For example, the item record for bitmap items is defined as follows:
typedef struct BitmapItem {
Tk_Item header;
double x, y;
Tk_Anchor anchor;
Pixmap bitmap;
XColor *fgColor;
XColor *bgColor;
GC gc;
} BitmapItem;
The header substructure contains information used by Tk to manage the item, such as its identifier, its tags, its type, and its bounding box. The fields starting with x belong to the type manager: Tk will never read or write them. The type manager should not need to read or write any of the fields in the header except for four fields whose names are x1, y1, x2, and y2. These fields give a bounding box for the items using integer canvas coordinates: the item should not cover any pixels with x-coordinate lower than x1 or y-coordinate lower than y1, nor should it cover any pixels with x-coordinate greater than or equal to x2 or y-coordinate greater than or equal to y2. It is up to the type manager to keep the bounding box up to date as the item is moved and reconfigured.
Whenever Tk calls a procedure in a type manager it passes in a pointer to an item record. The argument is always passed as a pointer to a Tk_Item; the type manager will typically cast this into a pointer to its own specific type, such as BitmapItem.
The third data structure used by type managers has type Tk_Canvas; it serves as an opaque handle for the canvas widget as a whole. Type managers need not know anything about the contents of this structure. A Tk_Canvas handle is typically passed in to the procedures of a type manager, and the type manager can pass the handle back to library procedures such as Tk_CanvasTkwin to fetch information about the canvas.
name
This section and the ones that follow describe each of the fields in a Tk_ItemType structure in detail. The name field provides a string name for the item type. Once Tk_CreateImageType returns, this name may be used in create methods to create items of the new type. If there already existed an item type by this name then the new item type replaces the old one.
itemSize
typePtr->itemSize gives the size in bytes of item records of this type, including the Tk_Item header. Tk uses this size to allocate memory space for items of the type. All of the item records for a given type must have the same size. If variable length fields are needed for an item (such as a list of points for a polygon), the type manager can allocate a separate object of variable length and keep a pointer to it in the item record.
Download (5.7MB)
Added: 2007-07-10 License: Perl Artistic License Price:
837 downloads
Gtk2::Ex::MindMapView::Border::Rectangle 0.000001
Gtk2::Ex::MindMapView::Border::Rectangle si a Perl module to create a rectangular border. more>>
Gtk2::Ex::MindMapView::Border::Rectangle si a Perl module to create a rectangular border.
HEIRARCHY
Gtk2::Ex::MindMapView::Border
+----Gtk2::Ex::MindMapView::Border::Rectangle
SYNOPSIS
use Gtk2::Ex::MindMapView::Border::Rectangle;
This module is internal to Gtk2::Ex::MindMapView. It draws a rectangular border for a Gtk2::Ex::MindMapView::Item. This rectangle is instantiated as part of the item creation process in Gtk2::Ex::MindMapView::ItemFactory.
INTERFACE
Properties
content (Gtk2::Ex::MindMapView::Content)
The content to be placed in the border.
x (double)
The x-coordinate of the upper left corner of the border bounding box.
y (double)
The y-coordinate of the upper left corner of the border bounding box.
width (double)
The width of the border bounding box.
height (double)
The height of the border bounding box.
width-pixels (double)
The width of the border line (in pixels).
padding-pixels (double)
The spacing between the content and the border (in pixels).
Methods
new(group=>$group, content=>$content, ...)
Instantiate a rectangular border. You must provide the Gnome2::Canvas::Group on which this border is to place itself. You must also provide a content object, Gtk2::Ex::MindMapView::Content.
border_get_image
This method overrides the border_get_image method defined in Border.pm. It instantiates a Gnome2::Canvas::Rect.
border_set_x
This method overrides the border_set_x method defined in Border.pm. It sets the value of the border x1 coordinate, and adjusts the x2 value so that the border retains its width.
border_set_y
This method overrides the border_set_y method defined in Border.pm. It sets the value of the border y1 coordinate, and adjusts the y2 value so that the border retains its height.
border_set_width
This method overrides the border_set_width method defined in Border.pm. It sets the value of the border x2 coordinate to reflect the new width.
border_set_height
This method overrides the border_set_height method defined in Border.pm. It sets the value of the border y2 coordinate to reflect the new height.
border_set_param
This method overrides the border_set_param method defined in Border.pm. It sets parameters in the Gnome2::Canvas::Rect object instantiated by this module.
<<lessHEIRARCHY
Gtk2::Ex::MindMapView::Border
+----Gtk2::Ex::MindMapView::Border::Rectangle
SYNOPSIS
use Gtk2::Ex::MindMapView::Border::Rectangle;
This module is internal to Gtk2::Ex::MindMapView. It draws a rectangular border for a Gtk2::Ex::MindMapView::Item. This rectangle is instantiated as part of the item creation process in Gtk2::Ex::MindMapView::ItemFactory.
INTERFACE
Properties
content (Gtk2::Ex::MindMapView::Content)
The content to be placed in the border.
x (double)
The x-coordinate of the upper left corner of the border bounding box.
y (double)
The y-coordinate of the upper left corner of the border bounding box.
width (double)
The width of the border bounding box.
height (double)
The height of the border bounding box.
width-pixels (double)
The width of the border line (in pixels).
padding-pixels (double)
The spacing between the content and the border (in pixels).
Methods
new(group=>$group, content=>$content, ...)
Instantiate a rectangular border. You must provide the Gnome2::Canvas::Group on which this border is to place itself. You must also provide a content object, Gtk2::Ex::MindMapView::Content.
border_get_image
This method overrides the border_get_image method defined in Border.pm. It instantiates a Gnome2::Canvas::Rect.
border_set_x
This method overrides the border_set_x method defined in Border.pm. It sets the value of the border x1 coordinate, and adjusts the x2 value so that the border retains its width.
border_set_y
This method overrides the border_set_y method defined in Border.pm. It sets the value of the border y1 coordinate, and adjusts the y2 value so that the border retains its height.
border_set_width
This method overrides the border_set_width method defined in Border.pm. It sets the value of the border x2 coordinate to reflect the new width.
border_set_height
This method overrides the border_set_height method defined in Border.pm. It sets the value of the border y2 coordinate to reflect the new height.
border_set_param
This method overrides the border_set_param method defined in Border.pm. It sets parameters in the Gnome2::Canvas::Rect object instantiated by this module.
Download (0.049MB)
Added: 2007-01-17 License: Perl Artistic License Price:
1011 downloads
Gtk2::Ex::MindMapView::Border::RoundedRect 0.000001
Gtk2::Ex::MindMapView::Border::RoundedRect is a Perl module to create a rounded rectangle border. more>>
Gtk2::Ex::MindMapView::Border::RoundedRect is a Perl module to create a rounded rectangle border.
SYNOPSIS
use Gtk2::Ex::MindMapView::Border::RoundedRect;
This module is internal to Gtk2::Ex::MindMapView. It draws a rounded rectangle border for a Gtk2::Ex::MindMapView::Item. This rectangle is instantiated as part of the item creation process in Gtk2::Ex::MindMapView::ItemFactory.
INTERFACE
Properties
content (Gtk2::Ex::MindMapView::Content)
The content to be placed in the rounded rectangle.
radius (double)
The radius of the rounded rectangle corner (in pixels).
width-pixels (double)
The width of the rounded rectangle corner (in pixels).
padding-pixels (double)
The padding between the content and the border (in pixels).
x (double)
The x-coordinate of the upper left corner of the border bounding box.
y (double)
The y-coordinate of the upper left corner of the border bounding box.
width (double)
The width of the border bounding box.
height (double)
The height of the border bounding box.
Methods
new(group=>$group, content=>$content, ...)
Instantiate a rounded rectangle border. You must provide the Gnome2::Canvas::Group on which this border is to place itself. You must also provide a content object, Gtk2::Ex::MindMapView::Content.
border_get_image()
This method overrides the border_get_image method defined in Border.pm. It instantiates a Gnome2::Canvas::Shape. .
border_set_x($value)
This method overrides the border_set_x method defined in Border.pm. It sets the value of the border x1 coordinate, and adjusts the x2 value so that the border retains its width.
border_set_y($value)
This method overrides the border_set_y method defined in Border.pm. It sets the value of the border y1 coordinate, and adjusts the y2 value so that the border retains its height.
border_set_width($value)
This method overrides the border_set_width method defined in Border.pm. It sets the value of the border x2 coordinate to reflect the new width.
border_set_height($value)
This method overrides the border_set_height method defined in Border.pm. It sets the value of the border y2 coordinate to reflect the new height.
border_set_param($name,$value)
This method overrides the border_set_param method defined in Border.pm. It sets parameters in the Gnome2::Canvas::Shape object instantiated by this module.
<<lessSYNOPSIS
use Gtk2::Ex::MindMapView::Border::RoundedRect;
This module is internal to Gtk2::Ex::MindMapView. It draws a rounded rectangle border for a Gtk2::Ex::MindMapView::Item. This rectangle is instantiated as part of the item creation process in Gtk2::Ex::MindMapView::ItemFactory.
INTERFACE
Properties
content (Gtk2::Ex::MindMapView::Content)
The content to be placed in the rounded rectangle.
radius (double)
The radius of the rounded rectangle corner (in pixels).
width-pixels (double)
The width of the rounded rectangle corner (in pixels).
padding-pixels (double)
The padding between the content and the border (in pixels).
x (double)
The x-coordinate of the upper left corner of the border bounding box.
y (double)
The y-coordinate of the upper left corner of the border bounding box.
width (double)
The width of the border bounding box.
height (double)
The height of the border bounding box.
Methods
new(group=>$group, content=>$content, ...)
Instantiate a rounded rectangle border. You must provide the Gnome2::Canvas::Group on which this border is to place itself. You must also provide a content object, Gtk2::Ex::MindMapView::Content.
border_get_image()
This method overrides the border_get_image method defined in Border.pm. It instantiates a Gnome2::Canvas::Shape. .
border_set_x($value)
This method overrides the border_set_x method defined in Border.pm. It sets the value of the border x1 coordinate, and adjusts the x2 value so that the border retains its width.
border_set_y($value)
This method overrides the border_set_y method defined in Border.pm. It sets the value of the border y1 coordinate, and adjusts the y2 value so that the border retains its height.
border_set_width($value)
This method overrides the border_set_width method defined in Border.pm. It sets the value of the border x2 coordinate to reflect the new width.
border_set_height($value)
This method overrides the border_set_height method defined in Border.pm. It sets the value of the border y2 coordinate to reflect the new height.
border_set_param($name,$value)
This method overrides the border_set_param method defined in Border.pm. It sets parameters in the Gnome2::Canvas::Shape object instantiated by this module.
Download (0.049MB)
Added: 2007-01-23 License: Perl Artistic License Price:
1004 downloads
Tk::Image::Calculation 0.04
Tk::Image::Calculation is a Perl extension for graphic calculations. more>>
Tk::Image::Calculation is a Perl extension for graphic calculations.
SYNOPSIS
#------------------------------------------------- use Tk::Image::Calculation; my @points_oval = (10, 10, 30, 50); my @points_circle = (20, 20, 60, 60); my @points_polygon = (136, 23, 231, 55, 463, 390, 338, 448, 182, 401, 148, 503, 15, 496, 9, 87); # polygon = (x1, y1, x2, y2, x3, y3, x4, y4, ... and so on) #------------------------------------------------- my $cal = Tk::Image::Calculation->new(); my $ref_array = $cal->GetPointsInOval(@points_oval); # my $ref_array = $cal->GetPointsOutOval(@points_oval); # my $ref_array = $cal->GetPointsInCircle(@points_circle); # my $ref_array = $cal->GetPointsOutCircle(@points_circle); # my $ref_array = $cal->GetPointsInPolygon(@points_polygon); # my $ref_array = $cal->GetPointsOutPolygon(@points_polygon); for(@{$ref_array}) { print("x:$_->[0] y:$_->[1]n"); } my $ref_array1 = $cal->GetLinesInOval(@points_oval); # my $ref_array1 = $cal->GetLinesOutOval(@points_oval); # my $ref_array1 = $cal->GetLinesInCircle(@points_circle); # my $ref_array1 = $cal->GetLinesOutCircle(@points_circle); # my $ref_array1 = $cal->GetLinesInPolygon(@points_polygon); # my $ref_array1 = $cal->GetLinesOutPolygon(@points_polygon); for(@{$ref_array1}) { print("x1:$_->[0] y1:$_->[1] x2:$_->[2] y2:$_->[3]n"); } #------------------------------------------------- my $cal1 = Tk::Image::Calculation->new( -points => @points_circle, -form => "circle", # or "oval" or "polygon" ); for my $subset ("points_inside", "points_outside") { print("n$subset circle : n"); for(@{$cal1->{$subset}}) { print("x:$_->[0] y:$_->[1]n"); } } for my $subset ("lines_inside", "lines_outside") { print("n$subset circle : n"); for(@{$cal1->{$subset}}) { print("x1:$_->[0] y1:$_->[1] x2:$_->[2] y2:$_->[3]n"); } } #------------------------------------------------- my $cal2 = Tk::Image::Calculation->new( -points => @points_polygon, # need three points at least -form => "polygon", -subset => "lines_outside", # defaults to "all" ); use Tk; my $mw = MainWindow->new(); my $canvas = $mw->Canvas( -width => 800, -height => 600, )->pack(); for(@{$cal2->{lines_outside}}) { $canvas->createLine(@{$_}); } MainLoop(); #------------------------------------------------- use Tk; use Tk::JPEG; my $mw = MainWindow->new(); my $image = $mw->Photo(-file => "test.jpg"); my $cal3 = Tk::Image::Calculation->new(); my $ref_points = $cal3->GetPointsOutCircle(50, 50, 150, 150); $image->put("#FFFFFF", -to => $_->[0], $_->[1]) for(@{$ref_points}); $image->write("new.jpg", -from => 50, 50, 150, 150); #-------------------------------------------------
This module calculates points and lines inside or outside from simple graphic objects. At this time possible objects:
"oval",
"circle",
"polygon"
<<lessSYNOPSIS
#------------------------------------------------- use Tk::Image::Calculation; my @points_oval = (10, 10, 30, 50); my @points_circle = (20, 20, 60, 60); my @points_polygon = (136, 23, 231, 55, 463, 390, 338, 448, 182, 401, 148, 503, 15, 496, 9, 87); # polygon = (x1, y1, x2, y2, x3, y3, x4, y4, ... and so on) #------------------------------------------------- my $cal = Tk::Image::Calculation->new(); my $ref_array = $cal->GetPointsInOval(@points_oval); # my $ref_array = $cal->GetPointsOutOval(@points_oval); # my $ref_array = $cal->GetPointsInCircle(@points_circle); # my $ref_array = $cal->GetPointsOutCircle(@points_circle); # my $ref_array = $cal->GetPointsInPolygon(@points_polygon); # my $ref_array = $cal->GetPointsOutPolygon(@points_polygon); for(@{$ref_array}) { print("x:$_->[0] y:$_->[1]n"); } my $ref_array1 = $cal->GetLinesInOval(@points_oval); # my $ref_array1 = $cal->GetLinesOutOval(@points_oval); # my $ref_array1 = $cal->GetLinesInCircle(@points_circle); # my $ref_array1 = $cal->GetLinesOutCircle(@points_circle); # my $ref_array1 = $cal->GetLinesInPolygon(@points_polygon); # my $ref_array1 = $cal->GetLinesOutPolygon(@points_polygon); for(@{$ref_array1}) { print("x1:$_->[0] y1:$_->[1] x2:$_->[2] y2:$_->[3]n"); } #------------------------------------------------- my $cal1 = Tk::Image::Calculation->new( -points => @points_circle, -form => "circle", # or "oval" or "polygon" ); for my $subset ("points_inside", "points_outside") { print("n$subset circle : n"); for(@{$cal1->{$subset}}) { print("x:$_->[0] y:$_->[1]n"); } } for my $subset ("lines_inside", "lines_outside") { print("n$subset circle : n"); for(@{$cal1->{$subset}}) { print("x1:$_->[0] y1:$_->[1] x2:$_->[2] y2:$_->[3]n"); } } #------------------------------------------------- my $cal2 = Tk::Image::Calculation->new( -points => @points_polygon, # need three points at least -form => "polygon", -subset => "lines_outside", # defaults to "all" ); use Tk; my $mw = MainWindow->new(); my $canvas = $mw->Canvas( -width => 800, -height => 600, )->pack(); for(@{$cal2->{lines_outside}}) { $canvas->createLine(@{$_}); } MainLoop(); #------------------------------------------------- use Tk; use Tk::JPEG; my $mw = MainWindow->new(); my $image = $mw->Photo(-file => "test.jpg"); my $cal3 = Tk::Image::Calculation->new(); my $ref_points = $cal3->GetPointsOutCircle(50, 50, 150, 150); $image->put("#FFFFFF", -to => $_->[0], $_->[1]) for(@{$ref_points}); $image->write("new.jpg", -from => 50, 50, 150, 150); #-------------------------------------------------
This module calculates points and lines inside or outside from simple graphic objects. At this time possible objects:
"oval",
"circle",
"polygon"
Download (0.007MB)
Added: 2006-07-28 License: Perl Artistic License Price:
1183 downloads
PGPLOT::Simple 0.05
PGPLOT::Simple is a simple Perl Interface to PGPLOT. more>>
PGPLOT::Simple is a simple Perl Interface to PGPLOT.
SYNOPSIS
use strict;
use PGPLOT::Simple qw(:essential);
die "Must provide a filename.n" unless @ARGV;
my $filename = shift;
chomp $filename;
unless ( $filename =~ /.ps$/ ) {
$filename .= ".ps";
}
set_begin({
file => "$filename/CPS",
});
set_environment({
x_min => 0,
x_max => 50,
y_min => 0,
y_max => 10,
});
write_label({
title => A Simple Graph Using PGPLOT::Simple,
color => Blue,
font => Italic,
});
draw_points({
x => [1, 3, 12, 32, 40],
y => [1, 5, 5, 3, 9],
color => Blue,
width => 20,
});
draw_error_bars({
x => [20],
y1 => [4],
y2 => [6],
terminal => 10,
width => 10,
color => Orange,
});
set_end;
PGPLOT::Simple is a simple interface to the PGPLOT library ala Perl, making simple things easy and difficult things possible.
Why simple? Because it has a simple and intiutive interface to the most common things you will need from PGPLOT, but also allowing you low-level access to the PGPLOT library.
<<lessSYNOPSIS
use strict;
use PGPLOT::Simple qw(:essential);
die "Must provide a filename.n" unless @ARGV;
my $filename = shift;
chomp $filename;
unless ( $filename =~ /.ps$/ ) {
$filename .= ".ps";
}
set_begin({
file => "$filename/CPS",
});
set_environment({
x_min => 0,
x_max => 50,
y_min => 0,
y_max => 10,
});
write_label({
title => A Simple Graph Using PGPLOT::Simple,
color => Blue,
font => Italic,
});
draw_points({
x => [1, 3, 12, 32, 40],
y => [1, 5, 5, 3, 9],
color => Blue,
width => 20,
});
draw_error_bars({
x => [20],
y1 => [4],
y2 => [6],
terminal => 10,
width => 10,
color => Orange,
});
set_end;
PGPLOT::Simple is a simple interface to the PGPLOT library ala Perl, making simple things easy and difficult things possible.
Why simple? Because it has a simple and intiutive interface to the most common things you will need from PGPLOT, but also allowing you low-level access to the PGPLOT library.
Download (0.033MB)
Added: 2007-04-23 License: Perl Artistic License Price:
915 downloads
Math::NumberCruncher 5.00
Math::NumberCruncher Perl module contains a collection of useful math-related functions. more>>
Math::NumberCruncher Perl module contains a collection of useful math-related functions.
SYNOPSIS
It should be noted that as of v4.0, there is now an OO interface to Math::NumberCruncher. For backwards compatibility, however, the previous, functional style will always be supported.
# OO Style
use Math::NumberCruncher;
$ref = Math::NumberCruncher->new();
# From this point on, all of the subroutines shown below will be available # through $ref (i.e., ( $high,$low ) = $ref->Range( @array )). For the sake # of brevity, consult the functional documentation (below) for the use # of specific functions.
# Functional Style
use Math::NumberCruncher;
($high, $low) = Math::NumberCruncher::Range(@array);
$mean = Math::NumberCruncher::Mean(@array);
$median = Math::NumberCruncher::Median(@array [, $decimal_places]);
$odd_median = Math::NumberCruncher::OddMedian(@array);
$mode = Math::NumberCruncher::Mode(@array);
$covariance = Math::NumberCruncher::Covariance(@array1, @array2);
$correlation = Math::NumberCruncher::Correlation(@array1, @array2);
($slope, $y_intercept) = Math::NumberCruncher::BestFit(@array1, @array2 [, $decimal_places]);
$distance = Math::NumberCruncher::Distance($x1,$y1,$z1,$x2,$y2,$z2 [, $decimal_places]);
$distance = Math::NumberCruncher::Distance($x1,$y1,$x1,$x2 [, $decimal_places]);
$distance = Math::NumberCruncher::ManhattanDistance($x1,$y1,$x2,$y2);
$probAll = Math::NumberCruncher::AllOf(0.3,0.25,0.91,0.002);
$probNone = Math::NumberCruncher::NoneOf(0.4,0.5772,0.212);
$probSome = Math::NumberCruncher::SomeOf(0.11,0.56,0.3275);
$factorial = Math::NumberCruncher::Factorial($some_number);
$permutations = Math::NumberCruncher::Permutation($n);
$permutations = Math::NumberCruncher::Permutation($n,$k);
$roll = Math::NumberCruncher::Dice(3,12,4);
$randInt = Math::NumberCruncher::RandInt(10,50);
$randomElement = Math::NumberCruncher::RandomElement(@array);
Math::NumberCruncher::ShuffleArray(@array);
@unique = Math::NumberCruncher::Unique(@array);
@a_only = Math::NumberCruncher::Compare(@a,@b);
@union = Math::NumberCruncher::Union(@a,@b);
@intersection = Math::NumberCruncher::Intersection(@a,@b);
@difference = Math::NumberCruncher::Difference(@a,@b);
$gaussianRand = Math::NumberCruncher::GaussianRand();
$ways = Math::NumberCruncher::Choose($n,$k);
$binomial = Math::NumberCruncher::Binomial($attempts,$successes,$probability);
$gaussianDist = Math::NumberCruncher::GaussianDist($x,$mean,$variance);
$StdDev = Math::NumberCruncher::StandardDeviation(@array [, $decimal_places]);
$variance = Math::NumberCruncher::Variance(@array [, $decimal_places]);
@scores = Math::NumberCruncher::StandardScores(@array [, $decimal_places]);
$confidence = Math::NumberCruncher::SignSignificance($trials,$hits,$probability);
$e = Math::Numbercruncher::EMC2( "m512", "miles" [, $decimal_places] );
$m = Math::NumberCruncher::EMC2( "e987432" "km" [, $decimal_places] );
$force = Math::NumberCruncher::FMA( "m12", "a73.5" [, $decimal_places] );
$mass = Math::NumberCruncher::FMA( "a43", "f1324" [, $decimal_places] );
$acceleration = Math::NumberCruncher::FMA( "f53512", "m356" [, $decimal_places] );
$predicted_value = Math::NubmerCruncher::Predict( $slope, $y_intercept, $proposed_x [, $decimal_places] );
$area = Math::NumberCruncher::TriangleHeron( $a, $b, $c [, $decimal_places] );
$area = Math::NumberCruncher::TriangleHeron( 1,3, 5,7, 8,2 [, $decimal_places] );
$perimeter = Math::NumberCruncher::PolygonPerimeter( $x0,$y0, $x1,$y1, $x2,$y2, ... [, p$decimal_places]);
$direction = Math::NumberCruncher::Clockwise( $x0,$y0, $x1,$y1, $x2,$y2 );
$collision = Math::NumberCruncher::InPolygon( $x, $y, @xy );
@points = Math::NumberCruncher::BoundingBox_Points( $d, @p );
$in_triangle = Math::NumberCruncher::InTriangle( $x,$y, $x0,$y0, $x1,$y1, $x2,$y2 );
$area = Math::NumberCruncher::PolygonArea( 0, 1, 1, 0, 2, 0, 3, 2, 2, 3 [, p$decimal_places] );
$area = Math::NumberCruncher::CircleArea( $diameter [, $decimal_places] );
$circumference = Math::NumberCruncher::Circumference( $diameter [, $decimal_places] );
$volume = Math::NumberCruncher::SphereVolume( $radius [, $decimal_places] );
$surface_area = Math::NumberCruncher::SphereSurface( $radius [, $decimal_places] );
$years = Math::NumberCruncher::RuleOf72( $interest_rate [, $decimal_places] );
$volume = Math::NumberCruncher::CylinderVolume( $radius, $height [, $decimal_places] );
$volume = Math::NumberCruncher::ConeVolume( $lowerBaseArea, $height [, $decimal_places] );
$radians = Math::NumberCruncher::deg2rad( $degrees [, $decimal_places] );
$degrees = Math::NumberCruncher::rad2deg( $radians [, $decimal_places] );
$Fahrenheit = Math::NumberCruncher::C2F( $Celsius [, $decimal_places] );
$Celsius = Math::NumberCruncher::F2C( $Fahrenheit [, $decimal_places] );
$cm = Math::NumberCruncher::in2cm( $inches [, $decimal_places] );
$inches = Math::NumberCruncher::cm2in( $cm [, $decimal_places] );
$ft = Math::NumberCruncher::m2ft( $m [, $decimal_places] );
$m = Math::NumberCruncher::ft2m( $ft [, $decimal_places] );
$miles = Math::NumberCruncher::km2miles( $km [, $decimal_places] );
$km = Math::NumberCruncher::miles2km( $miles [, $decimal_places] );
$lb = Math::NumberCruncher::kg2lb( $kg [, $decimal_places] );
$kg = Math::NumberCruncher::lb2kg( $lb [, $decimal_places] );
$RelativeStride = Math::NumberCruncher::RelativeStride( $stride_length, $leg_length [, $decimal_places] );
$RelativeStride = Math::NumberCruncher::RelativeStride_2( $DimensionlessSpeed [, $decimal_places] );
$DimensionlessSpeed = Math::NumberCruncher::DimensionlessSpeed( $RelativeStride [, $decimal_places] );
$DimensionlessSpeed = Math::NumberCruncher::DimensionlessSpeed_2( $ActualSpeed, $leg_length [, $decimal_places]);
$ActualSpeed = Math::NumberCruncher::ActualSpeed( $leg_length, $DimensionlessSpeed [, $decimal_places] );
$eccentricity = Math::NumberCruncher::Eccentricity( $half_major_axis, $half_minor_axis [, $decimal_places] );
$LatusRectum = Math::NumberCruncher::LatusRectum( $half_major_axis, $half_minor_axis [, $decimal_places] );
$EllipseArea = Math::NumberCruncher::EllipseArea( $half_major_axis, $half_minor_axis [, $decimal_places] );
$OrbitalVelocity = Math::NumberCruncher::OrbitalVelocity( $r, $a, $M [, $decimal_places] );
$sine = Math::NumberCruncher::sin( $x [, $decimal_places] );
$cosine = Math::NumberCruncher::cos( $x [, $decimal_places] );
$tangent = Math::NumberCruncher::tan( $x [, $decimal_places] );
$arcsin = Math::NumberCruncher::asin( $x [, $decimal_places] );
$arccos = Math::NumberCruncher::acos( $x [, $decimal_places] );
$arctan = Math::NumberCruncher::atan( $x [, $decimal_places] );
$cotangent = Math::NumberCruncher::cot( $x [, $decimal_places] );
$arccot = Math::NumberCruncher::acot( $x [, $decimal_places] );
$secant = Math::NumberCruncher::sec( $x [, $decimal_places] );
$arcsec = Math::NumberCruncher::asec( $x [, $decimal_places] );
$cosecant = Math::NumberCruncher::csc( $x [, $decimal_places] );
$arccosecant = Math::NumberCruncher::acsc( $x [, $decimal_places] );
$exsecant = Math::NumberCruncher::exsec( $x [, $decimal_places] );
$versine = Math::NumberCruncher::vers( $x [, $decimal_places] );
$coversine = Math::NumberCruncher::covers( $x [, $decimal_places] );
$haversine = Math::NumberCruncher::hav( $x [, $decimal_places] );
$grouped = Math::NumberCruncher::Commas( $number );
$SqrRoot = Math::NumberCruncher::SqrRoot( $number [, $decimal_places] );
$square_root = Math::NumberCruncher::sqrt( $x [, $decimal_places] );
$root = Math::NumberCruncher::Root( 55, 3 [, $decimal_places] );
$root = Math::NumberCruncher::Root2( 55, 3 [, $decimal_places] );
$log = Math::NumberCruncher::Ln( 100 [, $decimal_places] );
$log = Math::NumberCruncher::log( $num [, $decimal_places] );
$num = Math::NumberCruncher::Exp( 0.111 [, $decimal_places] );
$num = Math::NumberCruncher::exp( $log [, $decimal_places] );
$Pi = Math::NumberCruncher::PICONST( $decimal_places );
$E = Math::NumberCruncher::ECONST( $decimal_places );
( $A, $B, $C ) = Math::NumberCruncher::PythagTriples( $x, $y [, $decimal_places] );
$z = Math::NumberCruncher::PythagTriplesSeq( $x, $y [, $decimal_places] );
@nums = Math::NumberCruncher::SIS( [$start, $numbers, $increment] );
$inverse = Math::NumberCruncher::Inverse( $number [, $decimal_places] );
@constants = Math::NumberCruncher::CONSTANTS( all [, $decimal_places] );
$bernoulli = Math::NumberCruncher::Bernoulli( $num [, $decimal_places] );
@bernoulli = Math::NumberCruncher::Bernoulli( $num );
<<lessSYNOPSIS
It should be noted that as of v4.0, there is now an OO interface to Math::NumberCruncher. For backwards compatibility, however, the previous, functional style will always be supported.
# OO Style
use Math::NumberCruncher;
$ref = Math::NumberCruncher->new();
# From this point on, all of the subroutines shown below will be available # through $ref (i.e., ( $high,$low ) = $ref->Range( @array )). For the sake # of brevity, consult the functional documentation (below) for the use # of specific functions.
# Functional Style
use Math::NumberCruncher;
($high, $low) = Math::NumberCruncher::Range(@array);
$mean = Math::NumberCruncher::Mean(@array);
$median = Math::NumberCruncher::Median(@array [, $decimal_places]);
$odd_median = Math::NumberCruncher::OddMedian(@array);
$mode = Math::NumberCruncher::Mode(@array);
$covariance = Math::NumberCruncher::Covariance(@array1, @array2);
$correlation = Math::NumberCruncher::Correlation(@array1, @array2);
($slope, $y_intercept) = Math::NumberCruncher::BestFit(@array1, @array2 [, $decimal_places]);
$distance = Math::NumberCruncher::Distance($x1,$y1,$z1,$x2,$y2,$z2 [, $decimal_places]);
$distance = Math::NumberCruncher::Distance($x1,$y1,$x1,$x2 [, $decimal_places]);
$distance = Math::NumberCruncher::ManhattanDistance($x1,$y1,$x2,$y2);
$probAll = Math::NumberCruncher::AllOf(0.3,0.25,0.91,0.002);
$probNone = Math::NumberCruncher::NoneOf(0.4,0.5772,0.212);
$probSome = Math::NumberCruncher::SomeOf(0.11,0.56,0.3275);
$factorial = Math::NumberCruncher::Factorial($some_number);
$permutations = Math::NumberCruncher::Permutation($n);
$permutations = Math::NumberCruncher::Permutation($n,$k);
$roll = Math::NumberCruncher::Dice(3,12,4);
$randInt = Math::NumberCruncher::RandInt(10,50);
$randomElement = Math::NumberCruncher::RandomElement(@array);
Math::NumberCruncher::ShuffleArray(@array);
@unique = Math::NumberCruncher::Unique(@array);
@a_only = Math::NumberCruncher::Compare(@a,@b);
@union = Math::NumberCruncher::Union(@a,@b);
@intersection = Math::NumberCruncher::Intersection(@a,@b);
@difference = Math::NumberCruncher::Difference(@a,@b);
$gaussianRand = Math::NumberCruncher::GaussianRand();
$ways = Math::NumberCruncher::Choose($n,$k);
$binomial = Math::NumberCruncher::Binomial($attempts,$successes,$probability);
$gaussianDist = Math::NumberCruncher::GaussianDist($x,$mean,$variance);
$StdDev = Math::NumberCruncher::StandardDeviation(@array [, $decimal_places]);
$variance = Math::NumberCruncher::Variance(@array [, $decimal_places]);
@scores = Math::NumberCruncher::StandardScores(@array [, $decimal_places]);
$confidence = Math::NumberCruncher::SignSignificance($trials,$hits,$probability);
$e = Math::Numbercruncher::EMC2( "m512", "miles" [, $decimal_places] );
$m = Math::NumberCruncher::EMC2( "e987432" "km" [, $decimal_places] );
$force = Math::NumberCruncher::FMA( "m12", "a73.5" [, $decimal_places] );
$mass = Math::NumberCruncher::FMA( "a43", "f1324" [, $decimal_places] );
$acceleration = Math::NumberCruncher::FMA( "f53512", "m356" [, $decimal_places] );
$predicted_value = Math::NubmerCruncher::Predict( $slope, $y_intercept, $proposed_x [, $decimal_places] );
$area = Math::NumberCruncher::TriangleHeron( $a, $b, $c [, $decimal_places] );
$area = Math::NumberCruncher::TriangleHeron( 1,3, 5,7, 8,2 [, $decimal_places] );
$perimeter = Math::NumberCruncher::PolygonPerimeter( $x0,$y0, $x1,$y1, $x2,$y2, ... [, p$decimal_places]);
$direction = Math::NumberCruncher::Clockwise( $x0,$y0, $x1,$y1, $x2,$y2 );
$collision = Math::NumberCruncher::InPolygon( $x, $y, @xy );
@points = Math::NumberCruncher::BoundingBox_Points( $d, @p );
$in_triangle = Math::NumberCruncher::InTriangle( $x,$y, $x0,$y0, $x1,$y1, $x2,$y2 );
$area = Math::NumberCruncher::PolygonArea( 0, 1, 1, 0, 2, 0, 3, 2, 2, 3 [, p$decimal_places] );
$area = Math::NumberCruncher::CircleArea( $diameter [, $decimal_places] );
$circumference = Math::NumberCruncher::Circumference( $diameter [, $decimal_places] );
$volume = Math::NumberCruncher::SphereVolume( $radius [, $decimal_places] );
$surface_area = Math::NumberCruncher::SphereSurface( $radius [, $decimal_places] );
$years = Math::NumberCruncher::RuleOf72( $interest_rate [, $decimal_places] );
$volume = Math::NumberCruncher::CylinderVolume( $radius, $height [, $decimal_places] );
$volume = Math::NumberCruncher::ConeVolume( $lowerBaseArea, $height [, $decimal_places] );
$radians = Math::NumberCruncher::deg2rad( $degrees [, $decimal_places] );
$degrees = Math::NumberCruncher::rad2deg( $radians [, $decimal_places] );
$Fahrenheit = Math::NumberCruncher::C2F( $Celsius [, $decimal_places] );
$Celsius = Math::NumberCruncher::F2C( $Fahrenheit [, $decimal_places] );
$cm = Math::NumberCruncher::in2cm( $inches [, $decimal_places] );
$inches = Math::NumberCruncher::cm2in( $cm [, $decimal_places] );
$ft = Math::NumberCruncher::m2ft( $m [, $decimal_places] );
$m = Math::NumberCruncher::ft2m( $ft [, $decimal_places] );
$miles = Math::NumberCruncher::km2miles( $km [, $decimal_places] );
$km = Math::NumberCruncher::miles2km( $miles [, $decimal_places] );
$lb = Math::NumberCruncher::kg2lb( $kg [, $decimal_places] );
$kg = Math::NumberCruncher::lb2kg( $lb [, $decimal_places] );
$RelativeStride = Math::NumberCruncher::RelativeStride( $stride_length, $leg_length [, $decimal_places] );
$RelativeStride = Math::NumberCruncher::RelativeStride_2( $DimensionlessSpeed [, $decimal_places] );
$DimensionlessSpeed = Math::NumberCruncher::DimensionlessSpeed( $RelativeStride [, $decimal_places] );
$DimensionlessSpeed = Math::NumberCruncher::DimensionlessSpeed_2( $ActualSpeed, $leg_length [, $decimal_places]);
$ActualSpeed = Math::NumberCruncher::ActualSpeed( $leg_length, $DimensionlessSpeed [, $decimal_places] );
$eccentricity = Math::NumberCruncher::Eccentricity( $half_major_axis, $half_minor_axis [, $decimal_places] );
$LatusRectum = Math::NumberCruncher::LatusRectum( $half_major_axis, $half_minor_axis [, $decimal_places] );
$EllipseArea = Math::NumberCruncher::EllipseArea( $half_major_axis, $half_minor_axis [, $decimal_places] );
$OrbitalVelocity = Math::NumberCruncher::OrbitalVelocity( $r, $a, $M [, $decimal_places] );
$sine = Math::NumberCruncher::sin( $x [, $decimal_places] );
$cosine = Math::NumberCruncher::cos( $x [, $decimal_places] );
$tangent = Math::NumberCruncher::tan( $x [, $decimal_places] );
$arcsin = Math::NumberCruncher::asin( $x [, $decimal_places] );
$arccos = Math::NumberCruncher::acos( $x [, $decimal_places] );
$arctan = Math::NumberCruncher::atan( $x [, $decimal_places] );
$cotangent = Math::NumberCruncher::cot( $x [, $decimal_places] );
$arccot = Math::NumberCruncher::acot( $x [, $decimal_places] );
$secant = Math::NumberCruncher::sec( $x [, $decimal_places] );
$arcsec = Math::NumberCruncher::asec( $x [, $decimal_places] );
$cosecant = Math::NumberCruncher::csc( $x [, $decimal_places] );
$arccosecant = Math::NumberCruncher::acsc( $x [, $decimal_places] );
$exsecant = Math::NumberCruncher::exsec( $x [, $decimal_places] );
$versine = Math::NumberCruncher::vers( $x [, $decimal_places] );
$coversine = Math::NumberCruncher::covers( $x [, $decimal_places] );
$haversine = Math::NumberCruncher::hav( $x [, $decimal_places] );
$grouped = Math::NumberCruncher::Commas( $number );
$SqrRoot = Math::NumberCruncher::SqrRoot( $number [, $decimal_places] );
$square_root = Math::NumberCruncher::sqrt( $x [, $decimal_places] );
$root = Math::NumberCruncher::Root( 55, 3 [, $decimal_places] );
$root = Math::NumberCruncher::Root2( 55, 3 [, $decimal_places] );
$log = Math::NumberCruncher::Ln( 100 [, $decimal_places] );
$log = Math::NumberCruncher::log( $num [, $decimal_places] );
$num = Math::NumberCruncher::Exp( 0.111 [, $decimal_places] );
$num = Math::NumberCruncher::exp( $log [, $decimal_places] );
$Pi = Math::NumberCruncher::PICONST( $decimal_places );
$E = Math::NumberCruncher::ECONST( $decimal_places );
( $A, $B, $C ) = Math::NumberCruncher::PythagTriples( $x, $y [, $decimal_places] );
$z = Math::NumberCruncher::PythagTriplesSeq( $x, $y [, $decimal_places] );
@nums = Math::NumberCruncher::SIS( [$start, $numbers, $increment] );
$inverse = Math::NumberCruncher::Inverse( $number [, $decimal_places] );
@constants = Math::NumberCruncher::CONSTANTS( all [, $decimal_places] );
$bernoulli = Math::NumberCruncher::Bernoulli( $num [, $decimal_places] );
@bernoulli = Math::NumberCruncher::Bernoulli( $num );
Download (0.080MB)
Added: 2007-07-05 License: Perl Artistic License Price:
842 downloads
Math::Bezier::Convert 0.02
Math::Bezier::Convert is a Perl module to convert cubic and quadratic bezier each other. more>>
Math::Bezier::Convert is a Perl module to convert cubic and quadratic bezier each other.
SYNOPSIS
use Math::Bezier::Convert;
@new_cubic = divide_cubic($cx1, $cy1, $cx2, $cy2, $cx3, $cy3, $cx4, $cy4, $t);
@new_quad = divide_quadratic($cx1, $cy1, $cx2, $cy2, $cx3, $cy3, $t);
@quad = cubic_to_quadratic(@cubic);
@cubic = quadratic_to_cubic(@quad);
@lines = cubic_to_lines(@cubic);
@lines = quadratic_to_lines(@cubic);
Math::Bezier::Convert provides functions to convert quadratic bezier to cubic, to approximate cubic bezier to quadratic, and to approximate cubic and quadratic bezier to polyline.
Each function takes an array of the coordinates of control points of the bezier curve. Cubic bezier consists of one ANCHOR control point, two DIRECTOR control points, one ANCHOR, two DIRECTORS, ... and the last ANCHOR. Quadratic bezier consists of one ANCHOR, one DIRECTOR, ... and the last ANCHOR. The curve pass over the ANCHOR point, but dose not the DIRECTOR point. Each point consists of X and Y coordinates. Both are flatly listed in the array of the curve, like ($x1, $y1, $x2, $y2, ...).
divide_cubic( $cx1, $cy1, $cx2, $cy2, $cx3, $cy3, $cx4, $cy4, $t )
divides one segment of the cubic bezier curve at ratio $t, and returns new cubic bezier which has two segment (7 points).
divide_quadratic( $cx1, $cy1, $cx2, $cy2, $cx3, $cy3, $t )
divides one segment of the quadratic bezier curve at ratio $t, and returns new quadratic bezier which has two segment (5 points).
cubic_to_quadratic( @cubic )
approximates cubic bezier to quadratic bezier, and returns an array of the control points of the quadratic bezier curve.
quadratic_to_cubic( @quadratic )
converts quadratic bezier to cubic bezier, and returns an array of the control points of the cubic bezier curve.
cubic_to_lines( @cubic )
approximates cubic bezier to polyline, and returns an array of endpoints.
quadratic_to_lines( @cubic )
approximates quadratic bezier to polyline, and returns an array of endpoints.
<<lessSYNOPSIS
use Math::Bezier::Convert;
@new_cubic = divide_cubic($cx1, $cy1, $cx2, $cy2, $cx3, $cy3, $cx4, $cy4, $t);
@new_quad = divide_quadratic($cx1, $cy1, $cx2, $cy2, $cx3, $cy3, $t);
@quad = cubic_to_quadratic(@cubic);
@cubic = quadratic_to_cubic(@quad);
@lines = cubic_to_lines(@cubic);
@lines = quadratic_to_lines(@cubic);
Math::Bezier::Convert provides functions to convert quadratic bezier to cubic, to approximate cubic bezier to quadratic, and to approximate cubic and quadratic bezier to polyline.
Each function takes an array of the coordinates of control points of the bezier curve. Cubic bezier consists of one ANCHOR control point, two DIRECTOR control points, one ANCHOR, two DIRECTORS, ... and the last ANCHOR. Quadratic bezier consists of one ANCHOR, one DIRECTOR, ... and the last ANCHOR. The curve pass over the ANCHOR point, but dose not the DIRECTOR point. Each point consists of X and Y coordinates. Both are flatly listed in the array of the curve, like ($x1, $y1, $x2, $y2, ...).
divide_cubic( $cx1, $cy1, $cx2, $cy2, $cx3, $cy3, $cx4, $cy4, $t )
divides one segment of the cubic bezier curve at ratio $t, and returns new cubic bezier which has two segment (7 points).
divide_quadratic( $cx1, $cy1, $cx2, $cy2, $cx3, $cy3, $t )
divides one segment of the quadratic bezier curve at ratio $t, and returns new quadratic bezier which has two segment (5 points).
cubic_to_quadratic( @cubic )
approximates cubic bezier to quadratic bezier, and returns an array of the control points of the quadratic bezier curve.
quadratic_to_cubic( @quadratic )
converts quadratic bezier to cubic bezier, and returns an array of the control points of the cubic bezier curve.
cubic_to_lines( @cubic )
approximates cubic bezier to polyline, and returns an array of endpoints.
quadratic_to_lines( @cubic )
approximates quadratic bezier to polyline, and returns an array of endpoints.
Download (0.006MB)
Added: 2006-08-03 License: Perl Artistic License Price:
1178 downloads
Font::TTF::Scripts::AP 0.7
Font::TTF::Scripts::AP is a memory representation of a TTFBuilder Attachment Point database (APDB). more>>
Font::TTF::Scripts::AP is a memory representation of a TTFBuilder Attachment Point database (APDB).
SYNOPSIS
use Font::TTF::Scripts::AP;
$ap = Font::TTF::Scripts::AP->read_font($ttf_file, $ap_file, %opts);
$ap->make_classes();
INSTANCE VARIABLES
cmap
Reference to the Microsoft cmap within the font.
font
Reference to a font structure. read_font will cause at least the post, cmap, loca, and name tables to be read in.
glyphs
An array of references to glyph data structures, indexed by glyphID. Stucture elements are:
uni
Unicode scalar value, if any, as specified in the APDB. (decimal integer)
gnum
Actual glyph ID from font.
post
Actual Postscript name from font.
Note: The uni, gnum and post values are based on the UID, GID, and PSName fields of the APDB. If there are descrepancies between the APDB and the fonts internal tables, then for calcuating the above three values, priority is given first to UID field, then PSName field, and finally GID.
glyph
Reference to glyph structure read from font.
line
Line number in APDB where glyph is defined.
points
A hash of references to attachment point structures for this glyph, keyed by attachment point type (aka name). Each AP structure contains
name
The name (type in TTFBuilder terminology) of the attachment point
x, y
X and Y coordinates for the attachment point
line
Line number in APDB where this point is defined.
components
Present if the glyph is a composite. Is a reference to an array of component structures. Each component structure includes:
bbox
comma separated list of bounding box coordinates, i.e., x1, y1, x2, y2
uni
Unicode scalar value, if any, of the component. (decimal integer)
Note: The following instance variables contain the actual text read from the APDB. If there are descrepancies between the APDB and the font, these values may differ from corresponding values given above. Therefore these values should not be used except for diagnostic purposes.
UID
Unicode scalar value, if any, as specified in the APDB. (string of hex digits)
PSName
Postscript name, if any, as specified in the APDB
GID
Glyph id, if any, as specified in the APDB
classes
Created by "make_classes", this is a hash keyed by class name returning an array of GIDs for glyphs that are in the class. Classes are identified by extensions (part after a .) on the post name of each glyph. For each such extension, two classes are defined. The first is the class of all glyphs that have that extension (class name is the extension). The second is the class of nominal glyphs corresponding to the glyphs with that extension (class name is the extension but with the prefix no_).
lists
Created by "make_classes", this is a hash keyed by attachment point name (as modified by "make_point") returning an array of GIDs for glyphs that have the given attachment point.
vecs
If defined, this variable will be updated by "make_classes". It is a hash, keyed by attachment point name (as modified by "make_point") returning a bit vec bit array, indexed by GID, each bit set to 1 if the corresponding glyph has the given attachment point.
ligclasses
Optionally created by make_classes if ligatures are requested and they exist. The base forms class is no_code while the ligatures are held in code.
<<lessSYNOPSIS
use Font::TTF::Scripts::AP;
$ap = Font::TTF::Scripts::AP->read_font($ttf_file, $ap_file, %opts);
$ap->make_classes();
INSTANCE VARIABLES
cmap
Reference to the Microsoft cmap within the font.
font
Reference to a font structure. read_font will cause at least the post, cmap, loca, and name tables to be read in.
glyphs
An array of references to glyph data structures, indexed by glyphID. Stucture elements are:
uni
Unicode scalar value, if any, as specified in the APDB. (decimal integer)
gnum
Actual glyph ID from font.
post
Actual Postscript name from font.
Note: The uni, gnum and post values are based on the UID, GID, and PSName fields of the APDB. If there are descrepancies between the APDB and the fonts internal tables, then for calcuating the above three values, priority is given first to UID field, then PSName field, and finally GID.
glyph
Reference to glyph structure read from font.
line
Line number in APDB where glyph is defined.
points
A hash of references to attachment point structures for this glyph, keyed by attachment point type (aka name). Each AP structure contains
name
The name (type in TTFBuilder terminology) of the attachment point
x, y
X and Y coordinates for the attachment point
line
Line number in APDB where this point is defined.
components
Present if the glyph is a composite. Is a reference to an array of component structures. Each component structure includes:
bbox
comma separated list of bounding box coordinates, i.e., x1, y1, x2, y2
uni
Unicode scalar value, if any, of the component. (decimal integer)
Note: The following instance variables contain the actual text read from the APDB. If there are descrepancies between the APDB and the font, these values may differ from corresponding values given above. Therefore these values should not be used except for diagnostic purposes.
UID
Unicode scalar value, if any, as specified in the APDB. (string of hex digits)
PSName
Postscript name, if any, as specified in the APDB
GID
Glyph id, if any, as specified in the APDB
classes
Created by "make_classes", this is a hash keyed by class name returning an array of GIDs for glyphs that are in the class. Classes are identified by extensions (part after a .) on the post name of each glyph. For each such extension, two classes are defined. The first is the class of all glyphs that have that extension (class name is the extension). The second is the class of nominal glyphs corresponding to the glyphs with that extension (class name is the extension but with the prefix no_).
lists
Created by "make_classes", this is a hash keyed by attachment point name (as modified by "make_point") returning an array of GIDs for glyphs that have the given attachment point.
vecs
If defined, this variable will be updated by "make_classes". It is a hash, keyed by attachment point name (as modified by "make_point") returning a bit vec bit array, indexed by GID, each bit set to 1 if the corresponding glyph has the given attachment point.
ligclasses
Optionally created by make_classes if ligatures are requested and they exist. The base forms class is no_code while the ligatures are held in code.
Download (0.10MB)
Added: 2006-10-19 License: Perl Artistic License Price:
1110 downloads
PDL::Graphics::X 0.04
PDL::Graphics::X is a PDL OO access to X windows. more>>
PDL::Graphics::X is a PDL OO access to X windows.
SYNOPSIS
# example 1
use PDL;
use PDL::Graphics::X;
my $x_size = 255; my $y_size = 255;
my $win1 = PDL::Graphics::X->new({SIZE_X => $x_size, SIZE_Y => $y_size});
my $a = xvals(zeroes(byte,$x_size,$y_size));
$win1->imag($a);
# example 2
use PDL;
use PDL::Graphics::X;
my $win1 = PDL::Graphics::X->new({WIN_TITLE => "PDL", SIZE_X => 210, SIZE_Y => 210});
my $x = pdl(10, 100, 100, 10);
my $y = pdl(10, 10, 100, 100);
$win1->line($x, $y, {COLOR => [1,0,0], LINEWIDTH => 5});
This module interfaces PDL directly to X windows in a OO fashion. Each X object has an associated X window and handles opening, closing and drawing in the associated window. Hopefully it is reasonably intuitive to use. The vision is that this will serve as a base upon which other fully native PDL graphics modules could be built.
Common options such as LINEWIDTH are remembered from function call to function call, i.e. if you call $win1->line($x, $y, {COLOR => [1,0,0], LINEWIDTH => 5}) then the rectangle drawn by $win1->rect(10, 10, 190, 190) will also have a red border of width equal to 5.
FUNCTIONS
new
Constructor for a new X window object.
Usage: my $win1 = PDL::Graphics::X->new(); # open the window with the defaults
Usage: my $win1 = PDL::Graphics::X->new({WIN_TITLE => "PDL", SIZE_X => 210, SIZE_Y => 210});
Creates a new X object & its associated X window.
Options recognized :
SIZE_X - window x size in pixels (default = 400)
SIZE_Y - window y size in pixels (default = 300)
WIN_TITLE - A title for the window, if desired (default = "X")
BACK_COLOR - [r, g, b] the windows background color (default = [1.0, 1.0, 1.0], i.e. white)
imag
Display a PDL as a bitmap.
Usage: $win1->imag($my_img); # display an image with default size and scaling
Usage: $win1->imag($my_img, {AUTO_SCALE => 1.0}); # display an auto-scaled image
Displays a PDL as a bitmap. The PDL can be of size either (m,n) or (m,n,3). PDLs of size (m,n) are converted to indexed color based on the current color table (see ctab). PDLs of size (m,n,3) are displayed as true-color images with the last dimension specifying the color (RGB). Unless a re-scaling is specified, the minimum value displayed is 0.0 and the maximum is 255.0. If the PDL is larger then the window then the window will be re-scaled to accomodate the PDL;
Options recognized :
DEST_X - position of the left side of the bitmap in pixels (default = 0)
DEST_Y - position of the bottom of the bitmap in pixels (default = 0)
DEST_W - width of the bitmap to be displayed (default = width of the PDL)
DEST_H - height of the bitmap to be displayed (default = height of the PDL)
AUTO_SCALE - if set equal to 1, the PDL will be rescaled such that its
minimum value is 1 and its max is 255 (default = 0)
MIN - the minimum value to be displayed (default = 0.0)
MAX - the maximum value to be displayed (default = 255.0)
ctab
Set the color table
Usage: $win1->ctab(cat(lut_data(idl5))); # set the color table to idl5
Makes a local copy of a user supplied color table. The color table must be a 256 x 4 pdl of the form (l,r,g,b), as would be generated by the command $ct = cat(lut_data("xyz")). The l value is ignored. The r, g and b values should be in the range 0.0 - 1.0.
line
Draws a vector as connected points.
Usage: $win1->line($x, $y, {COLOR => [0,0,0], LINEWIDTH => 5}); # draw black line of width 5
Draw a poly-line between a set of points given by two PDLs of size (n). The first PDL gives the x position & the second piddle gives the y position of the individual points, n is the total number of points.
Options recognized
LINEWIDTH - line width
LINESTYLE - line style (0 = normal, 1 = dashed)
COLOR - [r, g, b] color of the line
rect
Draws a rectangle.
Usage: $win1->rect($x1, $y1, $x2, $y2);
Draws a rectangle with corners at ($x1, $y1) and ($x2, $y2).
Options recognized
LINEWIDTH - line width
LINESTYLE - line style (0 = normal, 1 = dashed)
COLOR - [r, g, b] color of the line
circle
Draws a circle.
Usage: $win1->circle($x, $y, $r);
Draws a circle centered at ($x, $y) with radius $r.
Options recognized
LINEWIDTH - line width
LINESTYLE - line style (0 = normal, 1 = dashed)
COLOR - [r, g, b] color of the line
ellipse
Draws an oval.
Usage: $win1->ellipse($x, $y, $a, $b);
Draws a oval centered at ($x, $y) with x size $a and y size $b.
Options recognized
LINEWIDTH - line width
LINESTYLE - line style (0 = normal, 1 = dashed)
COLOR - [r, g, b] color of the line
erase
Erases the contents of the window.
Usage: $win1->erase();
Resets the contents of the window to the background color.
text
Draw text
Usage: $win1->text("hello", $x, $y, $angle);
Draws text starting at $x and $y with baseline angle given by $angle. If you know how to draw truly rotated text in X, please let me know. How fonts are currently dealt with is imperfect at best. So that the font size can easily be changed, a search is performed for a scalable font with specified font name. If such a font cannot be found then the text will be displayed with the default X font and no font scaling.
Options recognized
FONT_NAME - name of the font family (default = "courier")
CHARSIZE - desired font size in points
COLOR - [r, g, b] color of the font
cursor
Returns the location of next mouse click in the window
Usage : my($x,$y) = $win1->cursor();
Returns the x & y locations of the next mouse click in the window.
we_exist
Returns 0 if the window still exists, 1 if it does not
Usage : my $exists = $win1->we_exist();
Originally written to help debug some problems with associated with X windows being closed by the user with a mouse. Preserved on the off chance that it will be useful to a dependent module.
winsize
Returns the window size & maximum window size (in pixels) in x and y
Usage : my ($win_x, $win_y, $max_x, $max_y) = $win1->winsize();
Primarily intended for use by dependent modules that might want to know what the current and maximum window size is.
resize
resizes a window & returns the new size (which might not be what you requested)
Usage : my ($new_x, $new_y) = $win1->resize($size_x, $size_y);
Primarily intended for use by dependent modules that might want to resize a window without destroying it and creating another one.
<<lessSYNOPSIS
# example 1
use PDL;
use PDL::Graphics::X;
my $x_size = 255; my $y_size = 255;
my $win1 = PDL::Graphics::X->new({SIZE_X => $x_size, SIZE_Y => $y_size});
my $a = xvals(zeroes(byte,$x_size,$y_size));
$win1->imag($a);
# example 2
use PDL;
use PDL::Graphics::X;
my $win1 = PDL::Graphics::X->new({WIN_TITLE => "PDL", SIZE_X => 210, SIZE_Y => 210});
my $x = pdl(10, 100, 100, 10);
my $y = pdl(10, 10, 100, 100);
$win1->line($x, $y, {COLOR => [1,0,0], LINEWIDTH => 5});
This module interfaces PDL directly to X windows in a OO fashion. Each X object has an associated X window and handles opening, closing and drawing in the associated window. Hopefully it is reasonably intuitive to use. The vision is that this will serve as a base upon which other fully native PDL graphics modules could be built.
Common options such as LINEWIDTH are remembered from function call to function call, i.e. if you call $win1->line($x, $y, {COLOR => [1,0,0], LINEWIDTH => 5}) then the rectangle drawn by $win1->rect(10, 10, 190, 190) will also have a red border of width equal to 5.
FUNCTIONS
new
Constructor for a new X window object.
Usage: my $win1 = PDL::Graphics::X->new(); # open the window with the defaults
Usage: my $win1 = PDL::Graphics::X->new({WIN_TITLE => "PDL", SIZE_X => 210, SIZE_Y => 210});
Creates a new X object & its associated X window.
Options recognized :
SIZE_X - window x size in pixels (default = 400)
SIZE_Y - window y size in pixels (default = 300)
WIN_TITLE - A title for the window, if desired (default = "X")
BACK_COLOR - [r, g, b] the windows background color (default = [1.0, 1.0, 1.0], i.e. white)
imag
Display a PDL as a bitmap.
Usage: $win1->imag($my_img); # display an image with default size and scaling
Usage: $win1->imag($my_img, {AUTO_SCALE => 1.0}); # display an auto-scaled image
Displays a PDL as a bitmap. The PDL can be of size either (m,n) or (m,n,3). PDLs of size (m,n) are converted to indexed color based on the current color table (see ctab). PDLs of size (m,n,3) are displayed as true-color images with the last dimension specifying the color (RGB). Unless a re-scaling is specified, the minimum value displayed is 0.0 and the maximum is 255.0. If the PDL is larger then the window then the window will be re-scaled to accomodate the PDL;
Options recognized :
DEST_X - position of the left side of the bitmap in pixels (default = 0)
DEST_Y - position of the bottom of the bitmap in pixels (default = 0)
DEST_W - width of the bitmap to be displayed (default = width of the PDL)
DEST_H - height of the bitmap to be displayed (default = height of the PDL)
AUTO_SCALE - if set equal to 1, the PDL will be rescaled such that its
minimum value is 1 and its max is 255 (default = 0)
MIN - the minimum value to be displayed (default = 0.0)
MAX - the maximum value to be displayed (default = 255.0)
ctab
Set the color table
Usage: $win1->ctab(cat(lut_data(idl5))); # set the color table to idl5
Makes a local copy of a user supplied color table. The color table must be a 256 x 4 pdl of the form (l,r,g,b), as would be generated by the command $ct = cat(lut_data("xyz")). The l value is ignored. The r, g and b values should be in the range 0.0 - 1.0.
line
Draws a vector as connected points.
Usage: $win1->line($x, $y, {COLOR => [0,0,0], LINEWIDTH => 5}); # draw black line of width 5
Draw a poly-line between a set of points given by two PDLs of size (n). The first PDL gives the x position & the second piddle gives the y position of the individual points, n is the total number of points.
Options recognized
LINEWIDTH - line width
LINESTYLE - line style (0 = normal, 1 = dashed)
COLOR - [r, g, b] color of the line
rect
Draws a rectangle.
Usage: $win1->rect($x1, $y1, $x2, $y2);
Draws a rectangle with corners at ($x1, $y1) and ($x2, $y2).
Options recognized
LINEWIDTH - line width
LINESTYLE - line style (0 = normal, 1 = dashed)
COLOR - [r, g, b] color of the line
circle
Draws a circle.
Usage: $win1->circle($x, $y, $r);
Draws a circle centered at ($x, $y) with radius $r.
Options recognized
LINEWIDTH - line width
LINESTYLE - line style (0 = normal, 1 = dashed)
COLOR - [r, g, b] color of the line
ellipse
Draws an oval.
Usage: $win1->ellipse($x, $y, $a, $b);
Draws a oval centered at ($x, $y) with x size $a and y size $b.
Options recognized
LINEWIDTH - line width
LINESTYLE - line style (0 = normal, 1 = dashed)
COLOR - [r, g, b] color of the line
erase
Erases the contents of the window.
Usage: $win1->erase();
Resets the contents of the window to the background color.
text
Draw text
Usage: $win1->text("hello", $x, $y, $angle);
Draws text starting at $x and $y with baseline angle given by $angle. If you know how to draw truly rotated text in X, please let me know. How fonts are currently dealt with is imperfect at best. So that the font size can easily be changed, a search is performed for a scalable font with specified font name. If such a font cannot be found then the text will be displayed with the default X font and no font scaling.
Options recognized
FONT_NAME - name of the font family (default = "courier")
CHARSIZE - desired font size in points
COLOR - [r, g, b] color of the font
cursor
Returns the location of next mouse click in the window
Usage : my($x,$y) = $win1->cursor();
Returns the x & y locations of the next mouse click in the window.
we_exist
Returns 0 if the window still exists, 1 if it does not
Usage : my $exists = $win1->we_exist();
Originally written to help debug some problems with associated with X windows being closed by the user with a mouse. Preserved on the off chance that it will be useful to a dependent module.
winsize
Returns the window size & maximum window size (in pixels) in x and y
Usage : my ($win_x, $win_y, $max_x, $max_y) = $win1->winsize();
Primarily intended for use by dependent modules that might want to know what the current and maximum window size is.
resize
resizes a window & returns the new size (which might not be what you requested)
Usage : my ($new_x, $new_y) = $win1->resize($size_x, $size_y);
Primarily intended for use by dependent modules that might want to resize a window without destroying it and creating another one.
Download (0.010MB)
Added: 2007-07-09 License: Perl Artistic License Price:
837 downloads
Font::Scripts::AP 0.5
Font::Scripts::AP is a Perl module for memory representation of a TTFBuilder Attachment Point database (APDB). more>>
Font::Scripts::AP is a Perl module for memory representation of a TTFBuilder Attachment Point database (APDB).
SYNOPSIS
use Font::Scripts::AP;
$ap = Font::Scripts::AP->read_font($ttf_file, $ap_file, %opts);
$ap->make_classes();
INSTANCE VARIABLES
cmap
Reference to the Microsoft cmap within the font.
font
Reference to a font structure. read_font will cause at least the post, cmap, loca, and name tables to be read in.
glyphs
An array of references to glyph data structures, indexed by glyphID. Stucture elements are:
uni
Unicode scalar value, if any, as specified in the APDB. (decimal integer)
gnum
Actual glyph ID from font.
post
Actual Postscript name from font.
Note: The uni, gnum and post values are based on the UID, GID, and PSName fields of the APDB. If there are descrepancies between the APDB and the fonts internal tables, then for calcuating the above three values, priority is given first to UID field, then PSName field, and finally GID.
glyph
Reference to glyph structure read from font.
line
Line number in APDB where glyph is defined.
points
A hash of references to attachment point structures for this glyph, keyed by attachment point type (aka name). Each AP structure contains
name
The name (type in TTFBuilder terminology) of the attachment point
x, y
X and Y coordinates for the attachment point
line
Line number in APDB where this point is defined.
components
Present if the glyph is a composite. Is a reference to an array of component structures. Each component structure includes:
bbox
comma separated list of bounding box coordinates, i.e., x1, y1, x2, y2
uni
Unicode scalar value, if any, of the component. (decimal integer)
Note: The following instance variables contain the actual text read from the APDB. If there are descrepancies between the APDB and the font, these values may differ from corresponding values given above. Therefore these values should not be used except for diagnostic purposes.
UID
Unicode scalar value, if any, as specified in the APDB. (string of hex digits)
PSName
Postscript name, if any, as specified in the APDB
GID
Glyph id, if any, as specified in the APDB
classes
Created by "make_classes", this is a hash keyed by class name returning an array of GIDs for glyphs that are in the class. Classes are identified by extensions (part after a .) on the post name of each glyph. For each such extension, two classes are defined. The first is the class of all glyphs that have that extension (class name is the extension). The second is the class of nominal glyphs corresponding to the glyphs with that extension (class name is the extension but with the prefix no_).
lists
Created by "make_classes", this is a hash keyed by attachment point name (as modified by "make_point") returning an array of GIDs for glyphs that have the given attachment point.
vecs
If defined, this variable will be updated by "make_classes". It is a hash, keyed by attachment point name (as modified by "make_point") returning a bit vec bit array, indexed by GID, each bit set to 1 if the corresponding glyph has the given attachment point.
ligclasses
Optionally created by make_classes if ligatures are requested and they exist. The base forms class is no_code while the ligatures are held in code.
WARNINGS
If -errorfh not set, this accumulates any warning or error messages encountered.
WARNINGS
Count of number fo warnings or errors encountered.
<<lessSYNOPSIS
use Font::Scripts::AP;
$ap = Font::Scripts::AP->read_font($ttf_file, $ap_file, %opts);
$ap->make_classes();
INSTANCE VARIABLES
cmap
Reference to the Microsoft cmap within the font.
font
Reference to a font structure. read_font will cause at least the post, cmap, loca, and name tables to be read in.
glyphs
An array of references to glyph data structures, indexed by glyphID. Stucture elements are:
uni
Unicode scalar value, if any, as specified in the APDB. (decimal integer)
gnum
Actual glyph ID from font.
post
Actual Postscript name from font.
Note: The uni, gnum and post values are based on the UID, GID, and PSName fields of the APDB. If there are descrepancies between the APDB and the fonts internal tables, then for calcuating the above three values, priority is given first to UID field, then PSName field, and finally GID.
glyph
Reference to glyph structure read from font.
line
Line number in APDB where glyph is defined.
points
A hash of references to attachment point structures for this glyph, keyed by attachment point type (aka name). Each AP structure contains
name
The name (type in TTFBuilder terminology) of the attachment point
x, y
X and Y coordinates for the attachment point
line
Line number in APDB where this point is defined.
components
Present if the glyph is a composite. Is a reference to an array of component structures. Each component structure includes:
bbox
comma separated list of bounding box coordinates, i.e., x1, y1, x2, y2
uni
Unicode scalar value, if any, of the component. (decimal integer)
Note: The following instance variables contain the actual text read from the APDB. If there are descrepancies between the APDB and the font, these values may differ from corresponding values given above. Therefore these values should not be used except for diagnostic purposes.
UID
Unicode scalar value, if any, as specified in the APDB. (string of hex digits)
PSName
Postscript name, if any, as specified in the APDB
GID
Glyph id, if any, as specified in the APDB
classes
Created by "make_classes", this is a hash keyed by class name returning an array of GIDs for glyphs that are in the class. Classes are identified by extensions (part after a .) on the post name of each glyph. For each such extension, two classes are defined. The first is the class of all glyphs that have that extension (class name is the extension). The second is the class of nominal glyphs corresponding to the glyphs with that extension (class name is the extension but with the prefix no_).
lists
Created by "make_classes", this is a hash keyed by attachment point name (as modified by "make_point") returning an array of GIDs for glyphs that have the given attachment point.
vecs
If defined, this variable will be updated by "make_classes". It is a hash, keyed by attachment point name (as modified by "make_point") returning a bit vec bit array, indexed by GID, each bit set to 1 if the corresponding glyph has the given attachment point.
ligclasses
Optionally created by make_classes if ligatures are requested and they exist. The base forms class is no_code while the ligatures are held in code.
WARNINGS
If -errorfh not set, this accumulates any warning or error messages encountered.
WARNINGS
Count of number fo warnings or errors encountered.
Download (0.10MB)
Added: 2006-10-03 License: Perl Artistic License Price:
1117 downloads
Secleted [ 0 ] software to compare
- Page: 1 of 2
- 1
- 2
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above y1 search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed