descent
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 17
XML::Descent 0.0.4
XML::Descent is a Perl module for recursive descent XML parsing. more>>
XML::Descent is a Perl module for recursive descent XML parsing.
SYNOPSIS
use XML::Descent;
# Create parser
my $p = XML::Descent->new({
Input => $xml
});
# Setup handlers
$p->on(folder => sub {
my ($elem, $attr) = @_;
$p->on(url => sub {
my ($elem, $attr) = @_;
my $link = {
name => $attr->{name},
url => $p->text()
};
$p->stash(link => $link);
});
my $folder = $p->walk();
$folder->{name} = $attr->{name};
$p->stash(folder => $folder);
});
# Parse
my $res = $p->walk();
The conventional models for parsing XML are either DOM (a data structure representing the entire document tree is created) or SAX (callbacks are issued for each element in the XML).
XML grammar is recursive - so its nice to be able to write recursive parsers for it. XML::Descent allows such parsers to be created.
Typically a new XML::Descent is created and handlers are defined for elements were interested in
my $p = XML::Descent->new({ Input => $xml });
$p->on(link => sub {
my ($elem, $attr) = @_;
print "Found link: ", $attr->{url}, "n";
$p->walk(); # recurse
});
$p->walk(); # parse
A handler provides a convenient lexical scope that lasts until the closing tag of the element that triggered the handler is reached.
When called at the top level the parsing methods walk(), text() and xml() parse the whole XML document. When called recursively within a handler they parse the portion of the document nested inside node that triggered the handler.
New handlers may be defined within a handler and their scope will be limited to the XML inside the node that triggered the handler.
<<lessSYNOPSIS
use XML::Descent;
# Create parser
my $p = XML::Descent->new({
Input => $xml
});
# Setup handlers
$p->on(folder => sub {
my ($elem, $attr) = @_;
$p->on(url => sub {
my ($elem, $attr) = @_;
my $link = {
name => $attr->{name},
url => $p->text()
};
$p->stash(link => $link);
});
my $folder = $p->walk();
$folder->{name} = $attr->{name};
$p->stash(folder => $folder);
});
# Parse
my $res = $p->walk();
The conventional models for parsing XML are either DOM (a data structure representing the entire document tree is created) or SAX (callbacks are issued for each element in the XML).
XML grammar is recursive - so its nice to be able to write recursive parsers for it. XML::Descent allows such parsers to be created.
Typically a new XML::Descent is created and handlers are defined for elements were interested in
my $p = XML::Descent->new({ Input => $xml });
$p->on(link => sub {
my ($elem, $attr) = @_;
print "Found link: ", $attr->{url}, "n";
$p->walk(); # recurse
});
$p->walk(); # parse
A handler provides a convenient lexical scope that lasts until the closing tag of the element that triggered the handler is reached.
When called at the top level the parsing methods walk(), text() and xml() parse the whole XML document. When called recursively within a handler they parse the portion of the document nested inside node that triggered the handler.
New handlers may be defined within a handler and their scope will be limited to the XML inside the node that triggered the handler.
Download (0.009MB)
Added: 2007-07-31 License: Perl Artistic License Price:
815 downloads
Parse::RecDescent 1.94
Parse::RecDescent is a Perl module to generate Recursive-Descent Parsers. more>>
Parse::RecDescent is a Perl module to generate Recursive-Descent Parsers.
SYNOPSIS
use Parse::RecDescent;
# Generate a parser from the specification in $grammar:
$parser = new Parse::RecDescent ($grammar);
# Generate a parser from the specification in $othergrammar
$anotherparser = new Parse::RecDescent ($othergrammar);
# Parse $text using rule startrule (which must be
# defined in $grammar):
$parser->startrule($text);
# Parse $text using rule otherrule (which must also
# be defined in $grammar):
$parser->otherrule($text);
# Change the universal token prefix pattern
# (the default is: s*):
$Parse::RecDescent::skip = [ t]+;
# Replace productions of existing rules (or create new ones)
# with the productions defined in $newgrammar:
$parser->Replace($newgrammar);
# Extend existing rules (or create new ones)
# by adding extra productions defined in $moregrammar:
$parser->Extend($moregrammar);
# Global flags (useful as command line arguments under -s):
$::RD_ERRORS # unless undefined, report fatal errors
$::RD_WARN # unless undefined, also report non-fatal problems
$::RD_HINT # if defined, also suggestion remedies
$::RD_TRACE # if defined, also trace parsers behaviour
$::RD_AUTOSTUB # if defined, generates "stubs" for undefined rules
$::RD_AUTOACTION # if defined, appends specified action to productions
Parse::RecDescent incrementally generates top-down recursive-descent text parsers from simple yacc-like grammar specifications.
Main features:
- Regular expressions or literal strings as terminals (tokens),
- Multiple (non-contiguous) productions for any rule,
- Repeated and optional subrules within productions,
- Full access to Perl within actions specified as part of the grammar,
- Simple automated error reporting during parser generation and parsing,
- The ability to commit to, uncommit to, or reject particular productions during a parse,
- The ability to pass data up and down the parse tree ("down" via subrule argument lists, "up" via subrule return values)
- Incremental extension of the parsing grammar (even during a parse),
- Precompilation of parser objects,
- User-definable reduce-reduce conflict resolution via "scoring" of matching productions.
<<lessSYNOPSIS
use Parse::RecDescent;
# Generate a parser from the specification in $grammar:
$parser = new Parse::RecDescent ($grammar);
# Generate a parser from the specification in $othergrammar
$anotherparser = new Parse::RecDescent ($othergrammar);
# Parse $text using rule startrule (which must be
# defined in $grammar):
$parser->startrule($text);
# Parse $text using rule otherrule (which must also
# be defined in $grammar):
$parser->otherrule($text);
# Change the universal token prefix pattern
# (the default is: s*):
$Parse::RecDescent::skip = [ t]+;
# Replace productions of existing rules (or create new ones)
# with the productions defined in $newgrammar:
$parser->Replace($newgrammar);
# Extend existing rules (or create new ones)
# by adding extra productions defined in $moregrammar:
$parser->Extend($moregrammar);
# Global flags (useful as command line arguments under -s):
$::RD_ERRORS # unless undefined, report fatal errors
$::RD_WARN # unless undefined, also report non-fatal problems
$::RD_HINT # if defined, also suggestion remedies
$::RD_TRACE # if defined, also trace parsers behaviour
$::RD_AUTOSTUB # if defined, generates "stubs" for undefined rules
$::RD_AUTOACTION # if defined, appends specified action to productions
Parse::RecDescent incrementally generates top-down recursive-descent text parsers from simple yacc-like grammar specifications.
Main features:
- Regular expressions or literal strings as terminals (tokens),
- Multiple (non-contiguous) productions for any rule,
- Repeated and optional subrules within productions,
- Full access to Perl within actions specified as part of the grammar,
- Simple automated error reporting during parser generation and parsing,
- The ability to commit to, uncommit to, or reject particular productions during a parse,
- The ability to pass data up and down the parse tree ("down" via subrule argument lists, "up" via subrule return values)
- Incremental extension of the parsing grammar (even during a parse),
- Precompilation of parser objects,
- User-definable reduce-reduce conflict resolution via "scoring" of matching productions.
Download (0.12MB)
Added: 2006-09-23 License: Perl Artistic License Price:
1131 downloads
Into Cerberon :: Descent Into Doom 0.0.3
Into Cerberon :: Descent Into Doom is a Descent style mod for Doom3. more>>
Into Cerberon :: Descent Into Doom is a Descent style mod for Doom3.
Into Cerberon is a mod for Doom 3 that will bring the six-degrees-of-freedom action of the classic FPS game series Descent into the high-powered graphics engine of Doom 3.
<<lessInto Cerberon is a mod for Doom 3 that will bring the six-degrees-of-freedom action of the classic FPS game series Descent into the high-powered graphics engine of Doom 3.
Download (42MB)
Added: 2006-12-06 License: Freeware Price:
1054 downloads
GD::Simple 2.35
GD::Simple module is a simplified interface to GD library. more>>
GD::Simple module is a simplified interface to GD library.
SYNOPSIS
use GD::Simple;
# create a new image
$img = GD::Simple->new(400,250);
# draw a red rectangle with blue borders
$img->bgcolor(red);
$img->fgcolor(blue);
$img->rectangle(10,10,50,50);
# draw an empty rectangle with green borders
$img->bgcolor(undef);
$img->fgcolor(green);
$img->rectangle(30,30,100,100);
# move to (80,80) and draw a green line to (100,190)
$img->moveTo(80,80);
$img->lineTo(100,190);
# draw a solid orange ellipse
$img->moveTo(110,100);
$img->bgcolor(orange);
$img->fgcolor(orange);
$img->ellipse(40,40);
# draw a black filled arc
$img->moveTo(150,150);
$img->fgcolor(black);
$img->arc(50,50,0,100,gdNoFill|gdEdged);
# draw a string at (10,180) using the default
# built-in font
$img->moveTo(10,180);
$img->string(This is very simple);
# draw a string at (280,210) using 20 point
# times italic, angled upward 90 degrees
$img->moveTo(280,210);
$img->font(Times:italic);
$img->fontsize(20);
$img->angle(-90);
$img->string(This is very fancy);
# some turtle graphics
$img->moveTo(300,100);
$img->penSize(3,3);
$img->angle(0);
$img->line(20); # 20 pixels going to the right
$img->turn(30); # set turning angle to 30 degrees
$img->line(20); # 20 pixel line
$img->line(20);
$img->line(20);
$img->turn(-90); # set turning angle to -90 degrees
$img->line(50); # 50 pixel line
# draw a cyan polygon edged in blue
my $poly = new GD::Polygon;
$poly->addPt(150,100);
$poly->addPt(199,199);
$poly->addPt(100,199);
$img->bgcolor(cyan);
$img->fgcolor(blue);
$img->penSize(1,1);
$img->polygon($poly);
# convert into png data
print $img->png;
GD::Simple is a subclass of the GD library that shortens many of the long GD method calls by storing information about the pen color, size and position in the GD object itself. It also adds a small number of "turtle graphics" style calls for those who prefer to work in polar coordinates. In addition, the library allows you to use symbolic names for colors, such as "chartreuse", and will manage the colors for you.
The Pen
GD::Simple maintains a "pen" whose settings are used for line- and shape-drawing operations. The pen has the following properties:
fgcolor
The pen foreground color is the color of lines and the borders of filled and unfilled shapes.
bgcolor
The pen background color is the color of the contents of filled shapes.
pensize
The pen size is the width of the pen. Larger sizes draw thicker lines.
position
The pen position is its current position on the canvas in (X,Y) coordinates.
angle
When drawing in turtle mode, the pen angle determines the current direction of lines of relative length.
turn
When drawing in turtle mode, the turn determines the clockwise or counterclockwise angle that the pen will turn before drawing the next line.
font
The font to use when drawing text. Both built-in bitmapped fonts and TrueType fonts are supported.
fontsize
The size of the font to use when drawing with TrueType fonts.
One sets the position and properties of the pen and then draws. As the drawing progresses, the position of the pen is updated.
Methods
GD::Simple introduces a number of new methods, a few of which have the same name as GD::Image methods, and hence change their behavior. In addition to these new methods, GD::Simple objects support all of the GD::Image methods. If you make a method call that isnt directly supported by GD::Simple, it refers the request to the underlying GD::Image object. Hence one can load a JPEG image into GD::Simple and declare it to be TrueColor by using this call, which is effectively inherited from GD::Image:
my $img = GD::Simple->newFromJpeg(./myimage.jpg,1);
The rest of this section describes GD::Simple-specific methods.
$img->moveTo($x,$y)
This call changes the position of the pen without drawing. It moves the pen to position ($x,$y) on the drawing canvas.
$img->move($dx,$dy)
$img->move($dr)
This call changes the position of the pen without drawing. When called with two arguments it moves the pen $dx pixels to the right and $dy pixels downward. When called with one argument it moves the pen $dr pixels along the vector described by the current pen angle.
$img->lineTo($x,$y)
The lineTo() call simultaneously draws and moves the pen. It draws a line from the current pen position to the position defined by ($x,$y) using the current pen size and color. After drawing, the position of the pen is updated to the new position.
$img->line($dx,$dy)
$img->line($dr)
The line() call simultaneously draws and moves the pen. When called with two arguments it draws a line from the current position of the pen to the position $dx pixels to the right and $dy pixels down. When called with one argument, it draws a line $dr pixels long along the angle defined by the current pen angle.
$img->clear
This method clears the canvas by painting over it with the current background color.
$img->rectangle($x1,$y1,$x2,$y2)
This method draws the rectangle defined by corners ($x1,$y1), ($x2,$y2). The rectangles edges are drawn in the foreground color and its contents are filled with the background color. To draw a solid rectangle set bgcolor equal to fgcolor. To draw an unfilled rectangle (transparent inside), set bgcolor to undef.
$img->ellipse($width,$height)
This method draws the ellipse centered at the current location with width $width and height $height. The ellipses border is drawn in the foreground color and its contents are filled with the background color. To draw a solid ellipse set bgcolor equal to fgcolor. To draw an unfilled ellipse (transparent inside), set bgcolor to undef.
$img->arc($cx,$cy,$width,$height,$start,$end [,$style])
This method draws filled and unfilled arcs. See GD for a description of the arguments. To draw a solid arc (such as a pie wedge) set bgcolor equal to fgcolor. To draw an unfilled arc, set bgcolor to undef.
$img->polygon($poly)
This method draws filled and unfilled polygon using the current settings of fgcolor for the polygon border and bgcolor for the polygon fill color. See GD for a description of creating polygons. To draw a solid polygon set bgcolor equal to fgcolor. To draw an unfilled polygon, set bgcolor to undef.
$img->polyline($poly)
This method draws polygons without closing the first and last vertices (similar to GD::Image->unclosedPolygon()). It uses the fgcolor to draw the line.
$img->string($string)
This method draws the indicated string starting at the current position of the pen. The pen is moved to the end of the drawn string. Depending on the font selected with the font() method, this will use either a bitmapped GD font or a TrueType font. The angle of the pen will be consulted when drawing the text. For TrueType fonts, any angle is accepted. For GD bitmapped fonts, the angle can be either 0 (draw horizontal) or -90 (draw upwards).
For consistency between the TrueType and GD font behavior, the string is always drawn so that the current position of the pen corresponds to the bottom left of the first character of the text. This is different from the GD behavior, in which the first character of bitmapped fonts hangs down from the pen point.
This method returns a polygon indicating the bounding box of the rendered text. If an error occurred (such as invalid font specification) it returns undef and an error message in $@.
$metrics = $img->fontMetrics
($metrics,$width,$height) = GD::Simple->fontMetrics($font,$fontsize,$string)
This method returns information about the current font, most commonly a TrueType font. It can be invoked as an instance method (on a previously-created GD::Simple object) or as a class method (on the GD::Simple class).
When called as an instance method, fontMetrics() takes no arguments and returns a single hash reference containing the metrics that describe the currently selected font and size. The hash reference contains the following information:
xheight the base height of the font from the bottom to the top of
a lowercase m
ascent the length of the upper stem of the lowercase d
descent the length of the lower step of the lowercase j
lineheight the distance from the bottom of the j to the top of
the d
leading the distance between two adjacent lines
($delta_x,$delta_y)= $img->stringBounds($string)
This method indicates the X and Y offsets (which may be negative) that will occur when the given string is drawn using the current font, fontsize and angle. When the string is drawn horizontally, it gives the width and height of the strings bounding box.
$delta_x = $img->stringWidth($string)
This method indicates the width of the string given the current font, fontsize and angle. It is the same as ($img->stringBounds($string))[0]
($x,$y) = $img->curPos
Return the current position of the pen. Set the current position using moveTo().
$font = $img->font([$newfont] [,$newsize])
Get or set the current font. Fonts can be GD::Font objects, TrueType font file paths, or fontconfig font patterns like "Times:italic" (see fontconfig). The latter feature requires that you have the fontconfig library installed and are using libgd version 2.0.33 or higher.
As a shortcut, you may pass two arguments to set the font and the fontsize simultaneously. The fontsize is only valid when drawing with TrueType fonts.
$size = $img->fontsize([$newfontsize])
Get or set the current font size. This is only valid for TrueType fonts.
$size = $img->penSize([$newpensize])
Get or set the current pen width for use during line drawing operations.
$angle = $img->angle([$newangle])
Set the current angle for use when calling line() or move() with a single argument.
Here is an example of using turn() and angle() together to draw an octagon. The first line drawn is the downward-slanting top right edge. The last line drawn is the horizontal top of the octagon.
$img->moveTo(200,50);
$img->angle(0);
$img->turn(360/8);
for (1..8) { $img->line(50) }
$angle = $img->turn([$newangle])
Get or set the current angle to turn prior to drawing lines. This value is only used when calling line() or move() with a single argument. The turning angle will be applied to each call to line() or move() just before the actual drawing occurs.
Angles are in degrees. Positive values turn the angle clockwise.
$color = $img->fgcolor([$newcolor])
Get or set the pens foreground color. The current pen color can be set by (1) using an (r,g,b) triple; (2) using a previously-allocated color from the GD palette; or (3) by using a symbolic color name such as "chartreuse." The list of color names can be obtained using color_names().
$color = $img->bgcolor([$newcolor])
Get or set the pens background color. The current pen color can be set by (1) using an (r,g,b) triple; (2) using a previously-allocated color from the GD palette; or (3) by using a symbolic color name such as "chartreuse." The list of color names can be obtained using color_names().
$index = $img->translate_color(@args)
Translates a color into a GD palette or TrueColor index. You may pass either an (r,g,b) triple or a symbolic color name. If you pass a previously-allocated index, the method will return it unchanged.
$index = $img->alphaColor(@args,$alpha)
Creates an alpha color. You may pass either an (r,g,b) triple or a symbolic color name, followed by an integer indicating its opacity. The opacity value ranges from 0 (fully opaque) to 127 (fully transparent).
@names = GD::Simple->color_names
$translate_table = GD::Simple->color_names
Called in a list context, color_names() returns the list of symbolic color names recognized by this module. Called in a scalar context, the method returns a hash reference in which the keys are the color names and the values are array references containing [r,g,b] triples.
$gd = $img->gd
Return the internal GD::Image object. Usually you will not need to call this since all GD methods are automatically referred to this object.
($red,$green,$blue) = GD::Simple->HSVtoRGB($hue,$saturation,$value)
Convert a Hue/Saturation/Value (HSV) color into an RGB triple. The hue, saturation and value are integers from 0 to 255.
($hue,$saturation,$value) = GD::Simple->RGBtoHSV($hue,$saturation,$value)
Convert a Red/Green/Blue (RGB) value into a Hue/Saturation/Value (HSV) triple. The hue, saturation and value are integers from 0 to 255.
COLORS
This script will create an image showing all the symbolic colors.
#!/usr/bin/perl
use strict;
use GD::Simple;
my @color_names = GD::Simple->color_names;
my $cols = int(sqrt(@color_names));
my $rows = int(@color_names/$cols)+1;
my $cell_width = 100;
my $cell_height = 50;
my $legend_height = 16;
my $width = $cols * $cell_width;
my $height = $rows * $cell_height;
my $img = GD::Simple->new($width,$height);
$img->font(gdSmallFont);
for (my $c=0; $cfgcolor($color);
$img->rectangle(@topleft,@botright);
$img->moveTo($topleft[0]+2,$botright[1]+$legend_height-2);
$img->fgcolor(black);
$img->string($color);
}
}
print $img->png;
<<lessSYNOPSIS
use GD::Simple;
# create a new image
$img = GD::Simple->new(400,250);
# draw a red rectangle with blue borders
$img->bgcolor(red);
$img->fgcolor(blue);
$img->rectangle(10,10,50,50);
# draw an empty rectangle with green borders
$img->bgcolor(undef);
$img->fgcolor(green);
$img->rectangle(30,30,100,100);
# move to (80,80) and draw a green line to (100,190)
$img->moveTo(80,80);
$img->lineTo(100,190);
# draw a solid orange ellipse
$img->moveTo(110,100);
$img->bgcolor(orange);
$img->fgcolor(orange);
$img->ellipse(40,40);
# draw a black filled arc
$img->moveTo(150,150);
$img->fgcolor(black);
$img->arc(50,50,0,100,gdNoFill|gdEdged);
# draw a string at (10,180) using the default
# built-in font
$img->moveTo(10,180);
$img->string(This is very simple);
# draw a string at (280,210) using 20 point
# times italic, angled upward 90 degrees
$img->moveTo(280,210);
$img->font(Times:italic);
$img->fontsize(20);
$img->angle(-90);
$img->string(This is very fancy);
# some turtle graphics
$img->moveTo(300,100);
$img->penSize(3,3);
$img->angle(0);
$img->line(20); # 20 pixels going to the right
$img->turn(30); # set turning angle to 30 degrees
$img->line(20); # 20 pixel line
$img->line(20);
$img->line(20);
$img->turn(-90); # set turning angle to -90 degrees
$img->line(50); # 50 pixel line
# draw a cyan polygon edged in blue
my $poly = new GD::Polygon;
$poly->addPt(150,100);
$poly->addPt(199,199);
$poly->addPt(100,199);
$img->bgcolor(cyan);
$img->fgcolor(blue);
$img->penSize(1,1);
$img->polygon($poly);
# convert into png data
print $img->png;
GD::Simple is a subclass of the GD library that shortens many of the long GD method calls by storing information about the pen color, size and position in the GD object itself. It also adds a small number of "turtle graphics" style calls for those who prefer to work in polar coordinates. In addition, the library allows you to use symbolic names for colors, such as "chartreuse", and will manage the colors for you.
The Pen
GD::Simple maintains a "pen" whose settings are used for line- and shape-drawing operations. The pen has the following properties:
fgcolor
The pen foreground color is the color of lines and the borders of filled and unfilled shapes.
bgcolor
The pen background color is the color of the contents of filled shapes.
pensize
The pen size is the width of the pen. Larger sizes draw thicker lines.
position
The pen position is its current position on the canvas in (X,Y) coordinates.
angle
When drawing in turtle mode, the pen angle determines the current direction of lines of relative length.
turn
When drawing in turtle mode, the turn determines the clockwise or counterclockwise angle that the pen will turn before drawing the next line.
font
The font to use when drawing text. Both built-in bitmapped fonts and TrueType fonts are supported.
fontsize
The size of the font to use when drawing with TrueType fonts.
One sets the position and properties of the pen and then draws. As the drawing progresses, the position of the pen is updated.
Methods
GD::Simple introduces a number of new methods, a few of which have the same name as GD::Image methods, and hence change their behavior. In addition to these new methods, GD::Simple objects support all of the GD::Image methods. If you make a method call that isnt directly supported by GD::Simple, it refers the request to the underlying GD::Image object. Hence one can load a JPEG image into GD::Simple and declare it to be TrueColor by using this call, which is effectively inherited from GD::Image:
my $img = GD::Simple->newFromJpeg(./myimage.jpg,1);
The rest of this section describes GD::Simple-specific methods.
$img->moveTo($x,$y)
This call changes the position of the pen without drawing. It moves the pen to position ($x,$y) on the drawing canvas.
$img->move($dx,$dy)
$img->move($dr)
This call changes the position of the pen without drawing. When called with two arguments it moves the pen $dx pixels to the right and $dy pixels downward. When called with one argument it moves the pen $dr pixels along the vector described by the current pen angle.
$img->lineTo($x,$y)
The lineTo() call simultaneously draws and moves the pen. It draws a line from the current pen position to the position defined by ($x,$y) using the current pen size and color. After drawing, the position of the pen is updated to the new position.
$img->line($dx,$dy)
$img->line($dr)
The line() call simultaneously draws and moves the pen. When called with two arguments it draws a line from the current position of the pen to the position $dx pixels to the right and $dy pixels down. When called with one argument, it draws a line $dr pixels long along the angle defined by the current pen angle.
$img->clear
This method clears the canvas by painting over it with the current background color.
$img->rectangle($x1,$y1,$x2,$y2)
This method draws the rectangle defined by corners ($x1,$y1), ($x2,$y2). The rectangles edges are drawn in the foreground color and its contents are filled with the background color. To draw a solid rectangle set bgcolor equal to fgcolor. To draw an unfilled rectangle (transparent inside), set bgcolor to undef.
$img->ellipse($width,$height)
This method draws the ellipse centered at the current location with width $width and height $height. The ellipses border is drawn in the foreground color and its contents are filled with the background color. To draw a solid ellipse set bgcolor equal to fgcolor. To draw an unfilled ellipse (transparent inside), set bgcolor to undef.
$img->arc($cx,$cy,$width,$height,$start,$end [,$style])
This method draws filled and unfilled arcs. See GD for a description of the arguments. To draw a solid arc (such as a pie wedge) set bgcolor equal to fgcolor. To draw an unfilled arc, set bgcolor to undef.
$img->polygon($poly)
This method draws filled and unfilled polygon using the current settings of fgcolor for the polygon border and bgcolor for the polygon fill color. See GD for a description of creating polygons. To draw a solid polygon set bgcolor equal to fgcolor. To draw an unfilled polygon, set bgcolor to undef.
$img->polyline($poly)
This method draws polygons without closing the first and last vertices (similar to GD::Image->unclosedPolygon()). It uses the fgcolor to draw the line.
$img->string($string)
This method draws the indicated string starting at the current position of the pen. The pen is moved to the end of the drawn string. Depending on the font selected with the font() method, this will use either a bitmapped GD font or a TrueType font. The angle of the pen will be consulted when drawing the text. For TrueType fonts, any angle is accepted. For GD bitmapped fonts, the angle can be either 0 (draw horizontal) or -90 (draw upwards).
For consistency between the TrueType and GD font behavior, the string is always drawn so that the current position of the pen corresponds to the bottom left of the first character of the text. This is different from the GD behavior, in which the first character of bitmapped fonts hangs down from the pen point.
This method returns a polygon indicating the bounding box of the rendered text. If an error occurred (such as invalid font specification) it returns undef and an error message in $@.
$metrics = $img->fontMetrics
($metrics,$width,$height) = GD::Simple->fontMetrics($font,$fontsize,$string)
This method returns information about the current font, most commonly a TrueType font. It can be invoked as an instance method (on a previously-created GD::Simple object) or as a class method (on the GD::Simple class).
When called as an instance method, fontMetrics() takes no arguments and returns a single hash reference containing the metrics that describe the currently selected font and size. The hash reference contains the following information:
xheight the base height of the font from the bottom to the top of
a lowercase m
ascent the length of the upper stem of the lowercase d
descent the length of the lower step of the lowercase j
lineheight the distance from the bottom of the j to the top of
the d
leading the distance between two adjacent lines
($delta_x,$delta_y)= $img->stringBounds($string)
This method indicates the X and Y offsets (which may be negative) that will occur when the given string is drawn using the current font, fontsize and angle. When the string is drawn horizontally, it gives the width and height of the strings bounding box.
$delta_x = $img->stringWidth($string)
This method indicates the width of the string given the current font, fontsize and angle. It is the same as ($img->stringBounds($string))[0]
($x,$y) = $img->curPos
Return the current position of the pen. Set the current position using moveTo().
$font = $img->font([$newfont] [,$newsize])
Get or set the current font. Fonts can be GD::Font objects, TrueType font file paths, or fontconfig font patterns like "Times:italic" (see fontconfig). The latter feature requires that you have the fontconfig library installed and are using libgd version 2.0.33 or higher.
As a shortcut, you may pass two arguments to set the font and the fontsize simultaneously. The fontsize is only valid when drawing with TrueType fonts.
$size = $img->fontsize([$newfontsize])
Get or set the current font size. This is only valid for TrueType fonts.
$size = $img->penSize([$newpensize])
Get or set the current pen width for use during line drawing operations.
$angle = $img->angle([$newangle])
Set the current angle for use when calling line() or move() with a single argument.
Here is an example of using turn() and angle() together to draw an octagon. The first line drawn is the downward-slanting top right edge. The last line drawn is the horizontal top of the octagon.
$img->moveTo(200,50);
$img->angle(0);
$img->turn(360/8);
for (1..8) { $img->line(50) }
$angle = $img->turn([$newangle])
Get or set the current angle to turn prior to drawing lines. This value is only used when calling line() or move() with a single argument. The turning angle will be applied to each call to line() or move() just before the actual drawing occurs.
Angles are in degrees. Positive values turn the angle clockwise.
$color = $img->fgcolor([$newcolor])
Get or set the pens foreground color. The current pen color can be set by (1) using an (r,g,b) triple; (2) using a previously-allocated color from the GD palette; or (3) by using a symbolic color name such as "chartreuse." The list of color names can be obtained using color_names().
$color = $img->bgcolor([$newcolor])
Get or set the pens background color. The current pen color can be set by (1) using an (r,g,b) triple; (2) using a previously-allocated color from the GD palette; or (3) by using a symbolic color name such as "chartreuse." The list of color names can be obtained using color_names().
$index = $img->translate_color(@args)
Translates a color into a GD palette or TrueColor index. You may pass either an (r,g,b) triple or a symbolic color name. If you pass a previously-allocated index, the method will return it unchanged.
$index = $img->alphaColor(@args,$alpha)
Creates an alpha color. You may pass either an (r,g,b) triple or a symbolic color name, followed by an integer indicating its opacity. The opacity value ranges from 0 (fully opaque) to 127 (fully transparent).
@names = GD::Simple->color_names
$translate_table = GD::Simple->color_names
Called in a list context, color_names() returns the list of symbolic color names recognized by this module. Called in a scalar context, the method returns a hash reference in which the keys are the color names and the values are array references containing [r,g,b] triples.
$gd = $img->gd
Return the internal GD::Image object. Usually you will not need to call this since all GD methods are automatically referred to this object.
($red,$green,$blue) = GD::Simple->HSVtoRGB($hue,$saturation,$value)
Convert a Hue/Saturation/Value (HSV) color into an RGB triple. The hue, saturation and value are integers from 0 to 255.
($hue,$saturation,$value) = GD::Simple->RGBtoHSV($hue,$saturation,$value)
Convert a Red/Green/Blue (RGB) value into a Hue/Saturation/Value (HSV) triple. The hue, saturation and value are integers from 0 to 255.
COLORS
This script will create an image showing all the symbolic colors.
#!/usr/bin/perl
use strict;
use GD::Simple;
my @color_names = GD::Simple->color_names;
my $cols = int(sqrt(@color_names));
my $rows = int(@color_names/$cols)+1;
my $cell_width = 100;
my $cell_height = 50;
my $legend_height = 16;
my $width = $cols * $cell_width;
my $height = $rows * $cell_height;
my $img = GD::Simple->new($width,$height);
$img->font(gdSmallFont);
for (my $c=0; $cfgcolor($color);
$img->rectangle(@topleft,@botright);
$img->moveTo($topleft[0]+2,$botright[1]+$legend_height-2);
$img->fgcolor(black);
$img->string($color);
}
}
print $img->png;
Download (0.25MB)
Added: 2007-07-23 License: Perl Artistic License Price:
825 downloads
DXX-Rebirth 0.52
DXX-Rebirth is the Remake of the two DESCENT ports D1X and D2X. more>>
DXX-Rebirth is the Remake of the two DESCENT ports D1X and D2X.
This version of D1X is based on PLDs RPM release of d1x-1.43. Since this version is based on the original source code of 1999 it is hard to get it working on newer distributions.
My only goal is it to bring D1X back on Linux in a small package with an user-friendly installer that provides everything, that let the game run on every Linux box out there.
Linux is being developed day for day and every software must be prepared to be compatible with this daily updates. Unfortunately D1X isnt getting developed any more and its possible, that it wont run on distributions that will come in some years.
Your see in fact I have not debugged the source and/or compiled this binaries itself. Im just the guy who searched the best working binaries, packed them together with needed libraries and stuff, searched and solved some annoying bugs, wrote a small installer and this readme.
Since i cant compile the source any more i just can try to keep all files that are necessary for this game to live on. But this is a situation we will encounter in some years and now Im proud to present you the first distribution-independent installer for D1X!
I hope youll have fun with the installer and with the game of course, too. If you have something to say about my release, feel free to contact me.
Main features:
- Provide simple and easy to handle installer packages to let the ports run on every Linux distribution out there.
- Maintain the ports as good as possible to ensure their continuity.
- Arouse the interest and orm a new community to help to improve D1X and D2X to make them better as they already are and let them live on. Everyone - especially with coder skills - is welcome to help.
<<lessThis version of D1X is based on PLDs RPM release of d1x-1.43. Since this version is based on the original source code of 1999 it is hard to get it working on newer distributions.
My only goal is it to bring D1X back on Linux in a small package with an user-friendly installer that provides everything, that let the game run on every Linux box out there.
Linux is being developed day for day and every software must be prepared to be compatible with this daily updates. Unfortunately D1X isnt getting developed any more and its possible, that it wont run on distributions that will come in some years.
Your see in fact I have not debugged the source and/or compiled this binaries itself. Im just the guy who searched the best working binaries, packed them together with needed libraries and stuff, searched and solved some annoying bugs, wrote a small installer and this readme.
Since i cant compile the source any more i just can try to keep all files that are necessary for this game to live on. But this is a situation we will encounter in some years and now Im proud to present you the first distribution-independent installer for D1X!
I hope youll have fun with the installer and with the game of course, too. If you have something to say about my release, feel free to contact me.
Main features:
- Provide simple and easy to handle installer packages to let the ports run on every Linux distribution out there.
- Maintain the ports as good as possible to ensure their continuity.
- Arouse the interest and orm a new community to help to improve D1X and D2X to make them better as they already are and let them live on. Everyone - especially with coder skills - is welcome to help.
Download (2.2MB)
Added: 2007-05-05 License: GPL (GNU General Public License) Price:
906 downloads
StrBio 1.0
StrBio is a set of Java classes useful for development of software for computational structural biology research. more>>
StrBio is a set of Java classes and libraries useful for development of software for computational structural biology research.
They are licenced under the LGPL.
he strbio.org classes are the basis for several published research projects, including the Pred2ary secondary structure prediction program and the ASTRAL database of protein domain sequences.
The most interesting structural biology applications included are:
Pred2ary protein secondary structure prediction
JThread protein fold prediction
ConvertProtein for interconversion of protein file formats (FASTA, PDB, MSF, ALN, CASP, DSSP, HSSP, YAPF)
Filters to exchange data with commonly used molecular biology applications (e.g., BLAST, MinArea, MODELLER)
MakeRAF tool to create the Rapid Access Format sequence maps for the ASTRAL database.
Other more general-purpose functionality that is included:
Neural network library, including Scaled Conjugate Gradient or Steepest Descent optimization
Hooke and Jeeves derivative-free global optimization algorithm
Misc mathematical objects and algorithms (vectors, matrices, etc)
Efficient string formatting using Printf-based syntax (printf, atoi, atof, etc.)
<<lessThey are licenced under the LGPL.
he strbio.org classes are the basis for several published research projects, including the Pred2ary secondary structure prediction program and the ASTRAL database of protein domain sequences.
The most interesting structural biology applications included are:
Pred2ary protein secondary structure prediction
JThread protein fold prediction
ConvertProtein for interconversion of protein file formats (FASTA, PDB, MSF, ALN, CASP, DSSP, HSSP, YAPF)
Filters to exchange data with commonly used molecular biology applications (e.g., BLAST, MinArea, MODELLER)
MakeRAF tool to create the Rapid Access Format sequence maps for the ASTRAL database.
Other more general-purpose functionality that is included:
Neural network library, including Scaled Conjugate Gradient or Steepest Descent optimization
Hooke and Jeeves derivative-free global optimization algorithm
Misc mathematical objects and algorithms (vectors, matrices, etc)
Efficient string formatting using Printf-based syntax (printf, atoi, atof, etc.)
Download (12.7MB)
Added: 2005-11-14 License: LGPL (GNU Lesser General Public License) Price:
1440 downloads
Kelbt 0.12
Kelbt generates backtracking LALR parsers. more>>
Kelbt project can generate backtracking LALR parsers. Standard LALR parser generators emit an error upon encountering a conflict in the parse tables. Kelbt forges onward, generating parsers which handle conflicts by backtracking at runtime. Kelbt is able to generate a parser for any context-free grammar and therefore implements a generalized parsing method.
Kelbt is different from other backtracking LR systems in two ways. First, it elevates backtracking to the level of semantic actions by introducing a class of actions called undo actions. Undo actions are invoked as the backtracker undoes parsing and allow the user to revert any side effects of forward semantic actions. This makes it possible to backtrack over language constructs which must modify global state in preparation for handling context dependencies.
Second, Kelbt enables a user-controlled parsing strategy which approximates that of generalized recursive-descent parsing. This makes it easy for the user to resolve language ambiguities by ordering the grammar productions of a nonterminal according to their precedence. It is approximate in the sense that for most grammars the equivalent of an ordered choice parsing strategy is achieved. In cases where productions are parsed out of the order given, there is a simple grammar transformation which remedies the problem. See the CASCON paper for more details.
As a proof of concept, Kelbt has been used to write a partial C++ parser (included) which is composed of strictly a scanner, a name lookup stage and a grammar with standard semantic actions and semantic undo actions.
Enhancements:
- The -l option was added for turning off line directives in generated code.
- The class keyword was added.
- This indicates that a nonterminal or the token type is a C++ class, and should have its constructors and destructors called.
- The shortest statement was added.
- This allows one to force a shortest match of a list of items.
- The semantics of commit was changed.
- It now forces a full commit rather than a scoped commit.
- Many other improvements were made.
<<lessKelbt is different from other backtracking LR systems in two ways. First, it elevates backtracking to the level of semantic actions by introducing a class of actions called undo actions. Undo actions are invoked as the backtracker undoes parsing and allow the user to revert any side effects of forward semantic actions. This makes it possible to backtrack over language constructs which must modify global state in preparation for handling context dependencies.
Second, Kelbt enables a user-controlled parsing strategy which approximates that of generalized recursive-descent parsing. This makes it easy for the user to resolve language ambiguities by ordering the grammar productions of a nonterminal according to their precedence. It is approximate in the sense that for most grammars the equivalent of an ordered choice parsing strategy is achieved. In cases where productions are parsed out of the order given, there is a simple grammar transformation which remedies the problem. See the CASCON paper for more details.
As a proof of concept, Kelbt has been used to write a partial C++ parser (included) which is composed of strictly a scanner, a name lookup stage and a grammar with standard semantic actions and semantic undo actions.
Enhancements:
- The -l option was added for turning off line directives in generated code.
- The class keyword was added.
- This indicates that a nonterminal or the token type is a C++ class, and should have its constructors and destructors called.
- The shortest statement was added.
- This allows one to force a shortest match of a list of items.
- The semantics of commit was changed.
- It now forces a full commit rather than a scoped commit.
- Many other improvements were made.
Download (0.21MB)
Added: 2007-05-02 License: GPL (GNU General Public License) Price:
905 downloads
JetPAG 0.6.1
JetPAG is a powerful recursive-descent parser and lexical analyzer optimizing generator. more>>
JetPAG is full-LL(k) optimizing parser and lexical analyzer generator. It is focused on high usability, efficiency and readability of generated code. JetPAG performs full L(k) analysis and tails is with powerful optimizations resulting a grammatically powerfull, resource-efficient and fast recognizers.
JetPAG is suitable for a wide spectrum of applications ranging from simple stand-alone small interpreters to high-end full-featured parser interpreter kits suitable for integration with larger applications. Generated recognizers are guaranteed to be faster than most current recurisve-descent generated ones. Provided documentation and tutorials in the website allow acquiring skill in JetPAG to be a matter of minutes.
Enhancements:
- Many bugs were fixed.
- The analysis engines were vastly improved with smarter optimizations.
- Easier grammars and several new practical options were introduced.
- Importing and exporting token types for use among several grammars is supported.
- Improvements were made to the code generator.
<<lessJetPAG is suitable for a wide spectrum of applications ranging from simple stand-alone small interpreters to high-end full-featured parser interpreter kits suitable for integration with larger applications. Generated recognizers are guaranteed to be faster than most current recurisve-descent generated ones. Provided documentation and tutorials in the website allow acquiring skill in JetPAG to be a matter of minutes.
Enhancements:
- Many bugs were fixed.
- The analysis engines were vastly improved with smarter optimizations.
- Easier grammars and several new practical options were introduced.
- Importing and exporting token types for use among several grammars is supported.
- Improvements were made to the code generator.
Download (MB)
Added: 2007-02-08 License: GPL (GNU General Public License) Price:
988 downloads
XML::Xerces::DOMParse 1.7.0
XML::Xerces::DOMParse is a Perl module for parsing DOMs. more>>
XML::Xerces::DOMParse is a Perl module for parsing DOMs.
SYNOPSIS
# Here;s an example that reads in an XML file from the
# command line and then removes all formatting, re-adds
# formatting and then prints the DOM back to a file.
use XML::Xerces;
use XML::Xerces::DOMParse;
my $parser = new XML::Xerces::DOMParser ();
$parser->parse ($ARGV[0]);
my $doc = $parser->getDocument ();
XML::Xerces::DOMParse::unformat ($doc);
XML::Xerces::DOMParse::format ($doc);
XML::Xerces::DOMParse::print (*STDOUT, $doc);
Use this module in conjunction with XML::Xerces. Once you have read an XML file into a DOM tree in memory, this module provides routines for recursive descent parsing of the DOM tree. It also provides three concrete and useful functions to format, unformat and print DOM trees, all which are built on the more general parsing functions.
<<lessSYNOPSIS
# Here;s an example that reads in an XML file from the
# command line and then removes all formatting, re-adds
# formatting and then prints the DOM back to a file.
use XML::Xerces;
use XML::Xerces::DOMParse;
my $parser = new XML::Xerces::DOMParser ();
$parser->parse ($ARGV[0]);
my $doc = $parser->getDocument ();
XML::Xerces::DOMParse::unformat ($doc);
XML::Xerces::DOMParse::format ($doc);
XML::Xerces::DOMParse::print (*STDOUT, $doc);
Use this module in conjunction with XML::Xerces. Once you have read an XML file into a DOM tree in memory, this module provides routines for recursive descent parsing of the DOM tree. It also provides three concrete and useful functions to format, unformat and print DOM trees, all which are built on the more general parsing functions.
Download (0.13MB)
Added: 2007-06-15 License: Perl Artistic License Price:
861 downloads
Common Text Transformation Library 2.08
Common Text Transformation Library is a C++ parser generator library. more>>
Common Text Transformation Library, CTTL for short, is a set of C++ classes and functions to understand and modify text data. Common Text Transformation Library implementation is based on STL classes and algorithms.
Concept of a substring plays major role in design of the text transformation library. CTTL substring is an object that interacts with fragments of text encapsulated by STL std::basic_string template class.
Template classes cttl::const_edge and cttl::edge, designed for constant and mutable data access, respectively, represent CTTL substrings. Substrings may be compared, inserted, deleted, or replaced across multiple text inputs. If content of text mutates, the substrings adjust their positions accordingly to the change. CTTL guarantees that substrings remain stable with respect to a potentially mutable text.
Within CTTL framework, a substring may be parsed with EBNF-like grammar. CTTL lexical analysis engine generates a stream of substrings corresponding to the parsed symbols. BNF and EBNF grammars can be written directly in C++.
Template meta-programming and operator overloading offer features to write C++ expressions that describe grammar rules. No additional steps of parsing, compiling, or generating source code are required. Compiled CTTL program implements LL(INF)-parser, the recursive-descent parser with infinite lookahead.
Enhancements:
- This release focuses on documentation enhancements, which include multiple documentation improvements and revisions.
- An alphabetical index of all CTTL facilities was added: http://cttl.sourceforge.net/documentation_idx.html.
<<lessConcept of a substring plays major role in design of the text transformation library. CTTL substring is an object that interacts with fragments of text encapsulated by STL std::basic_string template class.
Template classes cttl::const_edge and cttl::edge, designed for constant and mutable data access, respectively, represent CTTL substrings. Substrings may be compared, inserted, deleted, or replaced across multiple text inputs. If content of text mutates, the substrings adjust their positions accordingly to the change. CTTL guarantees that substrings remain stable with respect to a potentially mutable text.
Within CTTL framework, a substring may be parsed with EBNF-like grammar. CTTL lexical analysis engine generates a stream of substrings corresponding to the parsed symbols. BNF and EBNF grammars can be written directly in C++.
Template meta-programming and operator overloading offer features to write C++ expressions that describe grammar rules. No additional steps of parsing, compiling, or generating source code are required. Compiled CTTL program implements LL(INF)-parser, the recursive-descent parser with infinite lookahead.
Enhancements:
- This release focuses on documentation enhancements, which include multiple documentation improvements and revisions.
- An alphabetical index of all CTTL facilities was added: http://cttl.sourceforge.net/documentation_idx.html.
Download (0.16MB)
Added: 2006-11-04 License: GPL (GNU General Public License) Price:
1085 downloads
Spirit Parser library 1.8.2
Spirit Parser library is an object-oriented, recursive descent parser generator framework. more>>
Spirit is an object oriented recursive descent parser generator framework implemented using template meta-programming techniques. Expression templates allow us to approximate the syntax of Extended Backus Normal Form[1] (EBNF) completely in C++.
Parser objects are composed through operator overloading and the result is a backtracking LL(inf) parser that is capable of parsing rather ambiguous grammars.
The Spirit framework enables a target grammar to be written exclusively in C++. Inline EBNF grammar specifications can mix freely with other C++ code and, thanks to the generative power of C++ templates, are immediately executable. In retrospect, conventional compiler-compilers or parser-generators have to perform an additional translation step from the source EBNF code to C or C++ code.
Spirit is part of Boost Libraries, a peer-reviewed, open collaborative development effort.
Enhancements:
- Fixed bug where a match is a variant.
- added Jamfile/Jamrules from CVS to spirit-1.8.1/
- added boost-build.jam from boost to spirit-1.8.1/
- disabled template multi-threading in libs/spirit/test/Jamfile
- added a boost-header-include rule (from spirit-header-include) pointing to miniboost in libs/spirit/test/Jamfile
- Fixed if_p inconsistency
<<lessParser objects are composed through operator overloading and the result is a backtracking LL(inf) parser that is capable of parsing rather ambiguous grammars.
The Spirit framework enables a target grammar to be written exclusively in C++. Inline EBNF grammar specifications can mix freely with other C++ code and, thanks to the generative power of C++ templates, are immediately executable. In retrospect, conventional compiler-compilers or parser-generators have to perform an additional translation step from the source EBNF code to C or C++ code.
Spirit is part of Boost Libraries, a peer-reviewed, open collaborative development effort.
Enhancements:
- Fixed bug where a match is a variant.
- added Jamfile/Jamrules from CVS to spirit-1.8.1/
- added boost-build.jam from boost to spirit-1.8.1/
- disabled template multi-threading in libs/spirit/test/Jamfile
- added a boost-header-include rule (from spirit-header-include) pointing to miniboost in libs/spirit/test/Jamfile
- Fixed if_p inconsistency
Download (2.27MB)
Added: 2005-04-22 License: zlib/libpng License Price:
1647 downloads
P-UMLaut 1.2
The P-UMLaut tool allows the user to transform UML 2.0 Sequence Diagrams to semantically equivalent Petri Nets. more>>
The P-UMLaut tool allows the user to transform UML 2.0 Sequence Diagrams to semantically equivalent Petri Nets.
These Petri Nets may then be simulated using the supplied PN simulator (of PEP descent) or operated on with any tool that can work with high level Petri Nets.
By plugging different Realms into the simulation by way of an event filter, the modeled world may then be displayed and interacted with in various fashions. A 3D animation module is supplied as well as two examples utilizing the complete toolchain.
Enhancements:
- A new Petrinet Simulator was implemented in Java which features Highlevel-PN to Lowlevel-PN unfolding and Timed-PN simulation.
- Filtering was enhanced. Irrlicht 0.12 is used.
<<lessThese Petri Nets may then be simulated using the supplied PN simulator (of PEP descent) or operated on with any tool that can work with high level Petri Nets.
By plugging different Realms into the simulation by way of an event filter, the modeled world may then be displayed and interacted with in various fashions. A 3D animation module is supplied as well as two examples utilizing the complete toolchain.
Enhancements:
- A new Petrinet Simulator was implemented in Java which features Highlevel-PN to Lowlevel-PN unfolding and Timed-PN simulation.
- Filtering was enhanced. Irrlicht 0.12 is used.
Download (15.9MB)
Added: 2005-09-27 License: GPL (GNU General Public License) Price:
1488 downloads
D2X-XL 1.9.276
D2X-XL is a Descent 2 OpenGL port to Linux. more>>
D2X-XL is a Descent 2 OpenGL port to Linux.
It is an open source project and has undergone a lot of enhancements compared to Descent 2.
Yet, as Descent 2 is a pretty old game, further development has slowed down, and there are a few issues - some still stemming from the original Descent 2 - that have never been adressed or solved in D2X.
As I still like Descent 2 pretty much, I was always looking for a way to get rid of the things that plagued me most in Descent 2. Getting hold of the D2X source files and being able to create a MS Visual C++ 6 project for D2X finally enabled me to fix these annoyances.
Although D2X-XL contains a lot of enhancements and new features, it is still fully backwards compatible to every other Descent 2 version and particularly to D2_Win98 and d2_3dfx (which constitute the reference for every other D2 version).
As many fixes simply restore features of the original Descent 2 that were missing in D2X (like availability of all cockpit views, or working mouse steering), it is even closer to them than D2X itself.
Keeping full backwards compatibility is my concern, and where I break it, it happens accidentally and will be fixed as soon as I notice it, or get notified of it.
Main features:
- Colored lighting and lightmap support
- Full CTF mode
- Entropy multiplayer game mode
- UDP/IP multiplayer code and tracker support
- Automatic mission download
- In-level teleports
- Cameras and monitors
- Speed boosts ("wind tunnels")
- Screen resolution up to 1600x1200
- All cockpit views available in all resolutions
- Mission folder with sub directories to allow for improved mission file management
- Support for playing D1 missions
<<lessIt is an open source project and has undergone a lot of enhancements compared to Descent 2.
Yet, as Descent 2 is a pretty old game, further development has slowed down, and there are a few issues - some still stemming from the original Descent 2 - that have never been adressed or solved in D2X.
As I still like Descent 2 pretty much, I was always looking for a way to get rid of the things that plagued me most in Descent 2. Getting hold of the D2X source files and being able to create a MS Visual C++ 6 project for D2X finally enabled me to fix these annoyances.
Although D2X-XL contains a lot of enhancements and new features, it is still fully backwards compatible to every other Descent 2 version and particularly to D2_Win98 and d2_3dfx (which constitute the reference for every other D2 version).
As many fixes simply restore features of the original Descent 2 that were missing in D2X (like availability of all cockpit views, or working mouse steering), it is even closer to them than D2X itself.
Keeping full backwards compatibility is my concern, and where I break it, it happens accidentally and will be fixed as soon as I notice it, or get notified of it.
Main features:
- Colored lighting and lightmap support
- Full CTF mode
- Entropy multiplayer game mode
- UDP/IP multiplayer code and tracker support
- Automatic mission download
- In-level teleports
- Cameras and monitors
- Speed boosts ("wind tunnels")
- Screen resolution up to 1600x1200
- All cockpit views available in all resolutions
- Mission folder with sub directories to allow for improved mission file management
- Support for playing D1 missions
Download (1.3MB)
Added: 2007-08-23 License: GPL (GNU General Public License) Price:
801 downloads
Other version of D2X-XL
Price: FREE
License:GPL
License:GPL
Price: FREE
License:GPL
License:GPL
funcparserlib 0.3.2
funcparserlib is a recursive descent parser library for Python based on functional combinators. more>> <<less
Added: 2009-07-27 License: MIT/X Consortium Lic... Price: FREE
downloads
FLAT::Legacy::FA::RE 0.1
FLAT::Legacy::FA::RE is a regular expression base class. more>>
FLAT::Legacy::FA::RE is a regular expression base class.
SYNOPSIS
use FLAT::Legacy::FA::RE;
use FLAT::Legacy::FA::NFA;
my $re = RE->new();
$re->set_re(a|b|(hi)*);
my $nfa = $re->to_nfa();
print $nfa->info(); # see stuff on NFA
my $dfa = $nfa->to_dfa();
print $dfa->info(); # see stuff on DFA
my @removed = $dfa->minimize();
print $dfa->info(); # see stuff on minimized DFA
print "Removed ".($#removed+1)." statesn";
This module implements a regular expression parser, and supports the conversion of a RE to a deterministic finite automata. A homegrown recursive descent parser is used to build the parse tree, and the method used to conver the regular expression to a DFA uses no intermediate NFA.
Recursive Descent-safe Regex Grammar:
R -> O
O -> CO
O -> | CO | epsilon
C -> SC
C -> .SC | epsilon
S -> LS
S -> *S | epsilon
L -> a | b | c |..| 0 | 1 | 2 |..| (R) | epsilon
Terminal symbols: a,b,c,..,z,0,1,2,..,9,|,*,(,)
NOTE: Concatenation operator, ., is not a terminal symbol and should not be included in the regex
FAQ: Q: Does this support Perl regular expressions?
A: No, just the regular expression using the terminal symbols listed above.
<<lessSYNOPSIS
use FLAT::Legacy::FA::RE;
use FLAT::Legacy::FA::NFA;
my $re = RE->new();
$re->set_re(a|b|(hi)*);
my $nfa = $re->to_nfa();
print $nfa->info(); # see stuff on NFA
my $dfa = $nfa->to_dfa();
print $dfa->info(); # see stuff on DFA
my @removed = $dfa->minimize();
print $dfa->info(); # see stuff on minimized DFA
print "Removed ".($#removed+1)." statesn";
This module implements a regular expression parser, and supports the conversion of a RE to a deterministic finite automata. A homegrown recursive descent parser is used to build the parse tree, and the method used to conver the regular expression to a DFA uses no intermediate NFA.
Recursive Descent-safe Regex Grammar:
R -> O
O -> CO
O -> | CO | epsilon
C -> SC
C -> .SC | epsilon
S -> LS
S -> *S | epsilon
L -> a | b | c |..| 0 | 1 | 2 |..| (R) | epsilon
Terminal symbols: a,b,c,..,z,0,1,2,..,9,|,*,(,)
NOTE: Concatenation operator, ., is not a terminal symbol and should not be included in the regex
FAQ: Q: Does this support Perl regular expressions?
A: No, just the regular expression using the terminal symbols listed above.
Download (0.032MB)
Added: 2007-07-25 License: Perl Artistic License Price:
821 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 descent 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