Interface Portrait
-
- All Known Implementing Classes:
AbstractPortrait,DefaultPortrait
public interface PortraitA portrait is a user-supplied image that is part of a game component, such as a character portrait on a character card. Portraits are obtained using thePortraitProviderinterface implemented by components that support them. Note that a component may implement that interface yet not actually have any portraits (by returning 0 fromPortraitProvider.getPortraitCount()).- Since:
- 3.0
- Author:
- Chris Jennings
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classPortrait.FeatureIdentifies features that this portrait supports.
-
Field Summary
Fields Modifier and Type Field Description static java.util.EnumSet<Portrait.Feature>ROTATABLE_PORTRAIT_FEATURESA predefined feature set that includes all of the features except rotation.static java.util.EnumSet<Portrait.Feature>STANDARD_PORTRAIT_FEATURESA predefined feature set that includes all of the features except rotation.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.awt.DimensiongetClipDimensions()Returns the size of the bounding rectangle of the area that the portrait is drawn within on the component sheet, in the coordinate system of the sheet's template image.java.awt.image.BufferedImagegetClipStencil()Optionally returns an image that describes how the portrait will "show through" surrounding card features.java.util.EnumSet<Portrait.Feature>getFeatures()Returns a set of the features supported by this portrait.java.awt.image.BufferedImagegetImage()Returns the image being used by this portrait.java.awt.geom.Point2DgetPan(java.awt.geom.Point2D dest)Returns the pan value as aPoint2D.doublegetPanX()Returns the horizontal pan value.doublegetPanY()Returns the vertical pan value.doublegetRotation()Returns the rotation angle for the portrait image.doublegetScale()Returns the scale of the portrait.java.lang.StringgetSource()Returns the identifier for the image being used by this portrait.voidinstallDefault()Requests that this portrait be set to use a default portrait image.voidsetImage(java.lang.String reportedSource, java.awt.image.BufferedImage image)Explicitly sets the image used by this portrait.voidsetPan(java.awt.geom.Point2D pan)Sets the pan value from a reference point.voidsetPanX(double x)Sets the horizontal pan value.voidsetPanY(double y)Sets the vertical pan value.voidsetRotation(double angleInDegrees)Sets the rotation angle for the portrait image.voidsetScale(double scale)Sets the scale factor applied to the default size chosen by the component.voidsetSource(java.lang.String resource)Sets the image used by the portrait.The value ofresourceis an identifier such as a local path to an image file or a URL.
-
-
-
Field Detail
-
STANDARD_PORTRAIT_FEATURES
static final java.util.EnumSet<Portrait.Feature> STANDARD_PORTRAIT_FEATURES
A predefined feature set that includes all of the features except rotation.
-
ROTATABLE_PORTRAIT_FEATURES
static final java.util.EnumSet<Portrait.Feature> ROTATABLE_PORTRAIT_FEATURES
A predefined feature set that includes all of the features except rotation.
-
-
Method Detail
-
setSource
void setSource(java.lang.String resource)
Sets the image used by the portrait.The value ofresourceis an identifier such as a local path to an image file or a URL. Eithernullor an empty string is a special identifier that requests a default image that depends on the component and portrait number.When a new portrait is set, the scale, pan, and rotation values will be changed to suit the new image. If you wish to keep these fixed, you must store these values in temporary variables before setting them image, and then restore them once this method returns.
If an image cannot be obtained from
resource(for example, if the file it names does not exist or is invalid), then a special error image is substituted.- Parameters:
resource- an identifier user to locate the image (a file or URL)- Throws:
java.lang.NullPointerException- ifresourceisnull
-
getSource
java.lang.String getSource()
Returns the identifier for the image being used by this portrait. See the description ofsetSource(java.lang.String)for details.- Returns:
- a resource identifier, such as a file path or URL
-
getImage
java.awt.image.BufferedImage getImage()
Returns the image being used by this portrait. The original image is returned, rather than a copy, in order to conserve resources. However, it is important that this image not be modified in any way as it may be shared between several objects.- Returns:
- a shared copy of the image used by the component
-
setImage
void setImage(java.lang.String reportedSource, java.awt.image.BufferedImage image)Explicitly sets the image used by this portrait. The source for the portrait will be set to reported source, but no attempt will be made to load the portrait from this source. Instead, the given image will be used as if it was the image loaded from the reported source. This is sometimes useful when you want to copy an image to a new component but you do not know if the source location is actually available on this system.- Parameters:
reportedSource- the apparent source of the imageimage- the image to use
-
getScale
double getScale()
Returns the scale of the portrait. A scale of 1 means that the portrait is being used at the default size chosen by the component.- Returns:
- the scale multiplier for the portrait
-
setScale
void setScale(double scale)
Sets the scale factor applied to the default size chosen by the component. Note that for many component types, the default size just fits in the available space, so that a value less than 1 will show blank space at one or more edges of the portrait area.- Parameters:
scale- the scale multiplier to apply to the image's default size
-
getPanX
double getPanX()
Returns the horizontal pan value. A value of 0 places the image at its default location within the portrait area. The units are pixels in the component's template image.- Returns:
- the shift from the default X position of the portrait
-
setPanX
void setPanX(double x)
Sets the horizontal pan value.- Parameters:
x- the shift from the default X position of the portrait
-
getPanY
double getPanY()
Returns the vertical pan value. A value of 0 places the image at its default location within the portrait area. The units are pixels in the component's template image.- Returns:
- the shift from the default Y position of the portrait
-
setPanY
void setPanY(double y)
Sets the vertical pan value.- Parameters:
y- the shift from the default Y position of the portrait
-
setPan
void setPan(java.awt.geom.Point2D pan)
Sets the pan value from a reference point.- Parameters:
pan- a point set to the new X and Y pan values
-
getPan
java.awt.geom.Point2D getPan(java.awt.geom.Point2D dest)
Returns the pan value as aPoint2D. The pan values will be stored indest; ifnull, a new point object will be allocated and returned.- Parameters:
dest- a point object to store the pan value in- Returns:
- the point object that contains the pan value
-
getRotation
double getRotation()
Returns the rotation angle for the portrait image. The default rotation is usually 0, but it differs by component. Positive angles turn in the anti-clockwise direction, while negative angles turn in the clockwise direction.- Returns:
- the rotation angle, in degrees
-
setRotation
void setRotation(double angleInDegrees)
Sets the rotation angle for the portrait image.- Parameters:
angleInDegrees- the rotation angle, in degrees
-
installDefault
void installDefault()
Requests that this portrait be set to use a default portrait image.
-
getClipDimensions
java.awt.Dimension getClipDimensions()
Returns the size of the bounding rectangle of the area that the portrait is drawn within on the component sheet, in the coordinate system of the sheet's template image.Note: The value returned by this method is intended for use in creating sample composites for the user to manipulate when adjusting the portrait. It usually, but may not, reflect the dimensions used internally by the portrait when drawing or calculating a default portrait scale.
- Returns:
- the dimensions of the portrait's clipping rectangle
-
getClipStencil
java.awt.image.BufferedImage getClipStencil()
Optionally returns an image that describes how the portrait will "show through" surrounding card features. The image's alpha channel is taken to represent a mask for the features that appear over the portrait area. For example, pixels with an alpha of 0 will show the portrait image only, and pixels with an alpha of 255 will show part of a sheet feature that obscures the underlying portrait. In other words, the alpha channel describes the shape of the portrait. If the portrait is simply an unobscured rectangle (that is, nothing is drawn overtop of it), this method can simply returnnull.Note: The value returned by this method is not guaranteed to be accurate and should not be relied on.
- Returns:
- an image whose alpha channel describes the obscured areas of the
portrait, or
null
-
getFeatures
java.util.EnumSet<Portrait.Feature> getFeatures()
Returns a set of the features supported by this portrait.
-
-