-
Notifications
You must be signed in to change notification settings - Fork 79
/
ShapePalette.as
75 lines (69 loc) · 2.01 KB
/
ShapePalette.as
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package flare.util.palette
{
import flare.util.Shapes;
/**
* Palette for shape values that maps integer indices to shape drawing
* functions.
* @see flare.vis.util.graphics.Shapes
*/
public class ShapePalette extends Palette
{
/**
* Creates a new, empty ShapePalette.
*/
public function ShapePalette() {
_values = new Array();
}
/**
* Adds a shape to this ShapePalette.
* @param shape the name of the shape. This name should be registered
* with a drawing function using the
* <code>flare.vis.util.graphics.Shapes</code> class.
*/
public function addShape(shape:String):void
{
_values.push(shape);
}
/**
* Gets the shape at the given index into the palette.
* @param idx the index of the shape
* @return the name of the shape
*/
public function getShape(idx:uint):String
{
return _values[idx % _values.length];
}
/**
* Sets the shape at the given index into the palette.
* @param idx the index of the shape
* @param shape the name of the shape. This name should be registered
* with a drawing function using the
* <code>flare.vis.util.graphics.Shapes</code> class.
*/
public function setShape(idx:uint, shape:String):void
{
_values[idx] = shape;
}
/**
* Returns a default shape palette instance. The default palette
* consists of (in order): circle, square, cross, "x", diamond,
* down-triangle, up-triangle, left-triangle, and right-triangle
* shapes.
* @return the default shape palette
*/
public static function defaultPalette():ShapePalette
{
var p:ShapePalette = new ShapePalette();
p.addShape(Shapes.CIRCLE);
p.addShape(Shapes.SQUARE);
p.addShape(Shapes.CROSS);
p.addShape(Shapes.X);
p.addShape(Shapes.DIAMOND);
p.addShape(Shapes.TRIANGLE_DOWN);
p.addShape(Shapes.TRIANGLE_UP);
p.addShape(Shapes.TRIANGLE_LEFT);
p.addShape(Shapes.TRIANGLE_RIGHT);
return p;
}
} // end of class ShapePalette
}