Package paintingcanvas.drawable
Class DrawableBase<T extends Drawable<T>>
- java.lang.Object
-
- paintingcanvas.drawable.DrawableBase<T>
-
- All Implemented Interfaces:
Animatable
,Colorable<T>
,Drawable<T>
,Positionable<T>
- Direct Known Subclasses:
DrawableBase.OutlineableDrawableBase
,Line
,Text
public abstract class DrawableBase<T extends Drawable<T>> extends java.lang.Object implements Drawable<T>, Positionable<T>, Colorable<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DrawableBase.InteractableShape<T extends Drawable<T>>
static class
DrawableBase.OutlineableDrawableBase<T extends Drawable<T>>
static class
DrawableBase.Shape<T extends Drawable<T>>
-
Constructor Summary
Constructors Constructor Description DrawableBase(int x, int y, java.awt.Color color)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.awt.Color
getColor()
Get the current color of an element as aColor
int
getLayer()
Gets the current layer of the object.java.awt.Point
getPos()
Get the position of the elementdouble
getRotation()
Get an elements rotationT
hide()
Hide the Object.double
internalGetRotation()
void
internalSetColor(java.awt.Color color)
void
internalSetLayer(int layer)
void
internalSetPos(int x, int y)
void
internalSetRotation(double rotation)
void
render(java.awt.Graphics2D g)
Actually render the object itselfT
show()
Show the Object-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface paintingcanvas.animation.Animatable
Modifier and Type Method Description default AnimationBuilder
colorTo(int hex, double duration)
Change the color ofthis
to the specifiedcolor
overduration
seconds.default AnimationBuilder
colorTo(int r, int g, int b, double duration)
Change the color ofthis
to the specifiedcolor
overduration
seconds.default AnimationBuilder
colorTo(int r, int g, int b, int a, double duration)
Change the color ofthis
to the specifiedcolor
overduration
seconds.default AnimationBuilder
colorTo(java.awt.Color color, double duration)
Change the color ofthis
to the specifiedcolor
overduration
seconds.default AnimationBuilder
colorTo(java.lang.String name, double duration)
Change the color ofthis
to the specifiedcolor
overduration
seconds.default AnimationBuilder
colorTo(Hue hue, double duration)
Change the color ofthis
to the specifiedcolor
overduration
seconds.Drawable<?>
drawable()
Get theDrawable
element from thisAnimatable
.default AnimationBuilder
fadeIn(double duration)
Fadethis
in overduration
seconds.default AnimationBuilder
fadeOut(double duration)
Fadethis
out overduration
seconds.default AnimationBuilder
moveBy(int x, int y, double duration)
Movethis
by the specifiedx
andy
overduration
seconds.default AnimationBuilder
moveHorizontalBy(int x, double duration)
Movethis
by the specifiedx
horizontally overduration
seconds.default AnimationBuilder
moveTo(int x, int y, double duration)
Movethis
to the specifiedx
andy
overduration
secondsdefault AnimationBuilder
moveVerticalBy(int y, double duration)
Movethis
by the specifiedy
vertically overduration
seconds.default AnimationBuilder
rotateBy(int angle, double duration)
Rotatethis
byangle
degrees overduration
seconds.default AnimationBuilder
rotateTo(int angle, double duration)
Rotatethis
to the specifiedangle
degrees overduration
seconds.
-
Methods inherited from interface paintingcanvas.drawable.Colorable
Modifier and Type Method Description java.awt.Color
getColor()
Get the current color of an element as aColor
void
internalSetColor(java.awt.Color color)
default T
setColor(int hex)
Set the color ofthis
to the specifiedcolor
.default T
setColor(int r, int g, int b)
Set the color ofthis
to the specifiedcolor
.default T
setColor(int r, int g, int b, int a)
default T
setColor(java.awt.Color color)
Set the color of the object with aColor
object.default T
setColor(java.lang.String name)
Set the color of the object with a hue name or hex code.default T
setColor(Hue hue)
Set the color of the object with aHue
object.
-
Methods inherited from interface paintingcanvas.drawable.Drawable
Modifier and Type Method Description default AnimationBuilder
animate()
Start animating this object.default T
bringToFront()
Brings the object in front of all other objects.java.awt.Point
center(java.awt.Graphics2D g)
Get the object's centerpointdefault Drawable<?>
drawable()
Get theDrawable
element from thisAnimatable
.default void
erase()
Erase this object from the canvas.int
getLayer()
Gets the current layer of the object.T
getThis()
T
hide()
Hide the Object.void
internalSetLayer(int layer)
void
render(java.awt.Graphics2D g)
Actually render the object itselfdefault T
sendToBack()
Puts the object behind all other objects.default T
setLayer(int layer)
Puts the object on a specific layer.T
show()
Show the Object
-
Methods inherited from interface paintingcanvas.drawable.Positionable
Modifier and Type Method Description java.awt.Point
getPos()
Get the position of the elementdouble
getRotation()
Get an elements rotationdefault int
getX()
Get the X-position of the elementdefault int
getY()
Get the Y-position of the element.double
internalGetRotation()
void
internalSetPos(int x, int y)
void
internalSetRotation(double rotation)
default T
move(int x, int y)
Moves this drawable by the specified x and y.default T
moveHorizontal(int x)
Moves this drawable by the specified x and y.default T
moveVertical(int y)
Moves this drawable by the specified x and y.default T
rotate(double rotation)
Rotate this element byrotation
degrees.default T
setPos(int x, int y)
Set the position of the element.default T
setRotation(double rotation)
Set an elements rotation torotation
degrees.default T
setX(int x)
Set the X-position of the objectdefault T
setY(int y)
Set the Y-position of the element
-
-
-
-
Method Detail
-
internalSetLayer
public void internalSetLayer(int layer)
- Specified by:
internalSetLayer
in interfaceDrawable<T extends Drawable<T>>
-
render
public void render(java.awt.Graphics2D g)
Description copied from interface:Drawable
Actually render the object itselfThis calls the draw methods, but does some extra steps beforehand to lay it out correctly
-
hide
public T hide()
Description copied from interface:Drawable
Hide the Object.Circle o = new Circle(100, 100, 20); o.hide();
-
show
public T show()
Description copied from interface:Drawable
Show the ObjectCircle o = new Circle(100, 100, 20); o.show();
-
getLayer
public int getLayer()
Description copied from interface:Drawable
Gets the current layer of the object. By default, all objects are on layer 0.- Specified by:
getLayer
in interfaceDrawable<T extends Drawable<T>>
- Returns:
- the original object to allow method chaining
- See Also:
Drawable.setLayer(int)
,Drawable.bringToFront()
,Drawable.sendToBack()
-
internalSetPos
public void internalSetPos(int x, int y)
- Specified by:
internalSetPos
in interfacePositionable<T extends Drawable<T>>
-
internalGetRotation
public double internalGetRotation()
- Specified by:
internalGetRotation
in interfacePositionable<T extends Drawable<T>>
-
internalSetRotation
public void internalSetRotation(double rotation)
- Specified by:
internalSetRotation
in interfacePositionable<T extends Drawable<T>>
-
getPos
public java.awt.Point getPos()
Description copied from interface:Positionable
Get the position of the element- Specified by:
getPos
in interfacePositionable<T extends Drawable<T>>
- Returns:
- the position of the element as a
Point
- See Also:
Positionable.setPos(int, int)
-
getRotation
public double getRotation()
Description copied from interface:Positionable
Get an elements rotationCircle o = new Circle(100, 100, 20); o.setRotation(90); // Sets the elements rotation to 90° let i = o.getRotation(); // Gets the rotation assert i == 90;
- Specified by:
getRotation
in interfacePositionable<T extends Drawable<T>>
- Returns:
- the rotation of the object
- See Also:
Positionable.rotate(double)
-
internalSetColor
public void internalSetColor(java.awt.Color color)
- Specified by:
internalSetColor
in interfaceColorable<T extends Drawable<T>>
-
-