![]() |
CUGL 4.0
Cornell University Game Library
|
#include <CUProgressBar.h>
Public Member Functions | |
| ProgressBar () | |
| ~ProgressBar () | |
| virtual void | dispose () override |
| virtual bool | init () override |
| bool | initWithSize (const Size &size) |
| bool | initWithTexture (const std::shared_ptr< graphics::Texture > &texture) |
| bool | initWithTexture (const std::shared_ptr< graphics::Texture > &texture, const Size &size) |
| bool | initWithCaps (const std::shared_ptr< graphics::Texture > &texture, float left, float right) |
| bool | initWithCaps (const std::shared_ptr< graphics::Texture > &texture, float left, float right, const Size &size) |
| bool | initWithData (const AssetManager *manager, const std::shared_ptr< JsonValue > &data) override |
| float | getProgress () const |
| void | setProgress (float progress) |
| virtual void | setContentSize (const Size &size) override |
| void | setTexture (const std::string &filename) |
| void | setTexture (const std::shared_ptr< graphics::Texture > &texture) |
| std::shared_ptr< graphics::Texture > | getTexture () |
| const std::shared_ptr< graphics::Texture > & | getTexture () const |
| void | setInterior (float left, float right) |
| void | setInterior (const std::pair< float, float > interval) |
| const std::pair< float, float > | getInterior () const |
| void | setBlendMode (const graphics::BlendMode &mode) |
| void | setBlendState (const graphics::BlendState &blend) |
| const graphics::BlendState & | getBlendState () const |
| virtual std::string | toString (bool verbose=false) const override |
| virtual void | draw (const std::shared_ptr< graphics::SpriteBatch > &batch, const Affine2 &transform, Color4 tint) override |
| void | refresh () |
Public Member Functions inherited from cugl::scene2::SceneNode | |
| SceneNode () | |
| ~SceneNode () | |
| virtual void | dispose () |
| virtual bool | init () |
| virtual bool | initWithPosition (const Vec2 &pos) |
| bool | initWithPosition (float x, float y) |
| virtual bool | initWithBounds (const Size &size) |
| virtual bool | initWithBounds (float width, float height) |
| virtual bool | initWithBounds (const Rect &rect) |
| virtual bool | initWithBounds (float x, float y, float width, float height) |
| virtual bool | initWithData (const AssetManager *manager, const std::shared_ptr< JsonValue > &data) |
| bool | initForDrawableBounds () |
| bool | initForSafeBounds () |
| virtual std::shared_ptr< SceneNode > | copy (const std::shared_ptr< SceneNode > &dst) const |
| unsigned int | getTag () const |
| void | setTag (unsigned int tag) |
| const std::string | getName () const |
| void | setName (const std::string name) |
| const std::string | getClassName () const |
| virtual std::string | toString (bool verbose=false) const |
| operator std::string () const | |
| const std::shared_ptr< cugl::JsonValue > & | getJSON () const |
| const Vec2 & | getPosition () const |
| void | setPosition (const Vec2 &position) |
| void | setPosition (float x, float y) |
| float | getPositionX (void) const |
| void | setPositionX (float x) |
| float | getPositionY (void) const |
| void | setPositionY (float y) |
| Vec2 | getWorldPosition () const |
| const Size & | getContentSize () const |
| virtual void | setContentSize (const Size &size) |
| virtual void | setContentSize (float width, float height) |
| float | getContentWidth () const |
| void | setContentWidth (float width) |
| float | getContentHeight () const |
| void | setContentHeight (float height) |
| virtual Rect | getLayoutBounds () const |
| Size | getSize () const |
| float | getWidth () const |
| float | getHeight () const |
| Rect | getBoundingBox () const |
| virtual bool | inContentBounds (const Vec2 &point) |
| bool | inContentBounds (float x, float y) |
| virtual void | setAnchor (const Vec2 &anchor) |
| virtual void | setAnchor (float x, float y) |
| const Vec2 & | getAnchor () const |
| Vec2 | getAnchorInPixels () |
| Color4 | getColor () const |
| virtual void | setColor (Color4 color) |
| Color4 | getAbsoluteColor () |
| bool | isVisible () const |
| void | setVisible (bool visible) |
| bool | hasRelativeColor () const |
| void | setRelativeColor (bool flag) |
| std::shared_ptr< graphics::Scissor > | getScissor () const |
| void | setScissor (const std::shared_ptr< graphics::Scissor > &scissor) |
| void | setScissor () |
| const Vec2 & | getScale () const |
| float | getScaleX () const |
| float | getScaleY () const |
| void | setScale (float scale) |
| void | setScale (const Vec2 &vec) |
| void | setScale (float sx, float sy) |
| float | getAngle () |
| void | setAngle (float angle) |
| const Affine2 & | getTransform () const |
| const Affine2 & | getAlternateTransform () const |
| void | setAlternateTransform (const Affine2 &transform) |
| bool | withAlternateTransform () |
| void | chooseAlternateTransform (bool active) |
| const Affine2 & | getNodeToParentTransform () const |
| Affine2 | getParentToNodeTransform () const |
| virtual Affine2 | getNodeToWorldTransform () const |
| Affine2 | getWorldToNodeTransform () const |
| Vec2 | screenToNodeCoords (const Vec2 &screenPoint) const |
| Vec2 | worldToNodeCoords (const Vec2 &worldPoint) const |
| Vec2 | nodeToScreenCoords (const Vec2 &nodePoint) const |
| Vec2 | nodeToWorldCoords (const Vec2 &nodePoint) const |
| Vec2 | parentToNodeCoords (const Vec2 &parentPoint) const |
| Vec2 | nodeToParentCoords (const Vec2 &nodePoint) const |
| size_t | getChildCount () const |
| std::shared_ptr< SceneNode > | getChild (unsigned int pos) |
| const std::shared_ptr< SceneNode > & | getChild (unsigned int pos) const |
| template<typename T > | |
| std::shared_ptr< T > | getChild (unsigned int pos) const |
| std::shared_ptr< SceneNode > | getChildByTag (unsigned int tag) const |
| template<typename T > | |
| std::shared_ptr< T > | getChildByTag (unsigned int tag) const |
| std::shared_ptr< SceneNode > | getChildByName (const std::string name) const |
| template<typename T > | |
| std::shared_ptr< T > | getChildByName (const std::string name) const |
| std::vector< std::shared_ptr< SceneNode > > | getChildren () |
| const std::vector< std::shared_ptr< SceneNode > > & | getChildren () const |
| void | addChild (const std::shared_ptr< SceneNode > &child) |
| void | addChildWithTag (const std::shared_ptr< SceneNode > &child, unsigned int tag) |
| void | addChildWithName (const std::shared_ptr< SceneNode > &child, const std::string name) |
| void | swapChild (const std::shared_ptr< SceneNode > &child1, const std::shared_ptr< SceneNode > &child2, bool inherit=false) |
| SceneNode * | getParent () |
| const SceneNode * | getParent () const |
| Scene2 * | getScene () |
| const Scene2 * | getScene () const |
| void | removeFromParent () |
| virtual void | removeChild (unsigned int pos) |
| void | removeChild (const std::shared_ptr< SceneNode > &child) |
| void | removeChildByTag (unsigned int tag) |
| void | removeChildByName (const std::string name) |
| virtual void | removeAllChildren () |
| void | setPriority (float priority) |
| float | getPriority () |
| virtual void | render (const std::shared_ptr< graphics::SpriteBatch > &batch, const Affine2 &transform, Color4 tint) |
| virtual void | render (const std::shared_ptr< graphics::SpriteBatch > &batch) |
| virtual void | draw (const std::shared_ptr< graphics::SpriteBatch > &batch, const Affine2 &transform, Color4 tint) |
| Constraint | getLayoutConstraint () const |
| void | setLayoutConstraint (Constraint constraint) |
| const std::shared_ptr< Layout > & | getLayout () const |
| void | setLayout (const std::shared_ptr< Layout > &layout) |
| virtual void | doLayout () |
Static Public Member Functions | |
| static std::shared_ptr< ProgressBar > | allocWithSize (const Size &size) |
| static std::shared_ptr< ProgressBar > | allocWithTexture (const std::shared_ptr< graphics::Texture > &texture) |
| static std::shared_ptr< ProgressBar > | allocWithTexture (const std::shared_ptr< graphics::Texture > &texture, const Size &size) |
| static std::shared_ptr< ProgressBar > | allocWithCaps (const std::shared_ptr< graphics::Texture > &texture, float left, float right) |
| static std::shared_ptr< ProgressBar > | allocWithCaps (const std::shared_ptr< graphics::Texture > &texture, float left, float right, const Size &size) |
| static std::shared_ptr< SceneNode > | allocWithData (const AssetManager *manager, const std::shared_ptr< JsonValue > &data) |
Static Public Member Functions inherited from cugl::scene2::SceneNode | |
| static std::shared_ptr< SceneNode > | alloc () |
| static std::shared_ptr< SceneNode > | allocWithPosition (const Vec2 &pos) |
| static std::shared_ptr< SceneNode > | allocWithPosition (float x, float y) |
| static std::shared_ptr< SceneNode > | allocWithBounds (const Size &size) |
| static std::shared_ptr< SceneNode > | allocWithBounds (float width, float height) |
| static std::shared_ptr< SceneNode > | allocWithBounds (const Rect &rect) |
| static std::shared_ptr< SceneNode > | allocWithBounds (float x, float y, float width, float height) |
| static std::shared_ptr< SceneNode > | allocWithData (const AssetManager *manager, const std::shared_ptr< JsonValue > &data) |
| static std::shared_ptr< SceneNode > | allocForDrawableBounds () |
| static std::shared_ptr< SceneNode > | allocForSafeBounds () |
Protected Member Functions | |
| virtual void | generateRenderData () |
| void | clearRenderData () |
Protected Attributes | |
| float | _progress |
| std::shared_ptr< graphics::Texture > | _texture |
| bool | _rendered |
| std::pair< float, float > | _interior |
| graphics::Mesh< graphics::SpriteVertex > | _mesh |
| graphics::BlendState | _blend |
Additional Inherited Members | |
Public Types inherited from cugl::scene2::SceneNode | |
| enum class | Constraint : int { NONE = 0 , SCENE = 1 , SAFE = 2 , LAYOUT = 3 } |
Public Attributes inherited from cugl::scene2::SceneNode | |
| Vec2 | _position |
| Vec2 | _anchor |
| Size | _contentSize |
| Color4 | _tintColor |
| bool | _hasParentColor |
| bool | _isVisible |
| std::shared_ptr< graphics::Scissor > | _scissor |
| Vec2 | _scale |
| float | _angle |
| Affine2 | _transform |
| bool | _useTransform |
| Affine2 | _combined |
| std::vector< std::shared_ptr< SceneNode > > | _children |
| SceneNode * | _parent |
| Scene2 * | _graph |
| std::shared_ptr< Layout > | _layout |
| Constraint | _constraint |
| int | _childOffset |
| unsigned int | _tag |
| std::string | _name |
| size_t | _hashOfName |
| std::string | _classname |
| float | _priority |
| std::shared_ptr< JsonValue > | _json |
This class is a node the represents an (animating) project bar.
The progress bar may either be represented via a texture or a simple colored rectangle. If it is a texture, it acts as a 3-patch (a nine patch with no top or bottom component). It will draw the left and right side of the 3-patch and scale the middle component to match the progress. So if the progress value is at 50%, the middle portion will be at half its maximum size.
| cugl::scene2::ProgressBar::ProgressBar | ( | ) |
Creates an uninitialized progress bar with no size or texture information.
You must initialize this progress bar before use.
NEVER USE A CONSTRUCTOR WITH NEW. If you want to allocate a Node on the heap, use one of the static constructors instead.
|
inline |
Deletes this progress bar, disposing all resources
|
inlinestatic |
Returns a newly allocated progress bar with the texture and endcaps.
The progress bar will be the size of the texture. The values left and right refer to pixels in the texture. They represent the end of the left endcap and the start of the right endcap, respectively.
The progress bar will be placed at the origin of the parent and anchored at the bottom left.
| texture | The progress bar texture |
| left | The end of the left endcap in pixels |
| right | The start of the right endcap in pixels |
|
inlinestatic |
Returns a newly allocated progress bar with the given texture and size.
The progress bar will have the given size, which includes the size of the endcaps. The values left and right refer to pixels in the texture. They represent the end of the left endcap and the start of the right endcap, respectively.
The progress bar will be placed at the origin of the parent and anchored at the bottom left.
| texture | The progress bar texture |
| left | The end of the left endcap in pixels |
| right | The start of the right endcap in pixels |
| size | The progress bar size |
|
inlinestatic |
Returns a newly allocated node with the given JSON specificaton.
This initializer is designed to receive the "data" object from the JSON passed to Scene2Loader. This JSON format supports all of the attribute values of its parent class. In addition, it supports the following additional attributes:
"texture": The name of a previously loaded texture asset "interior": An two-element array of numbers (left,right) "blend": A string matching a blend mode.
All attributes are optional. There are no required attributes.
| manager | The asset manager handling this asset |
| data | The JSON object specifying the node |
|
inlinestatic |
Returns a newly allocated texture-less progress bar of the given size.
The progress bar will be a rectangle with getColor as its fill color. The progress bar will be placed at the origin of the parent and anchored at the bottom left.
| size | The progress bar size |
|
inlinestatic |
Returns a newly allocated progress bar with the given texture.
The progress bar will be the size of the texture. It will not have any endcaps and will stretch the texture to the size of the bar. The progress bar will be placed at the origin of the parent and anchored at the bottom left.
| texture | The progress bar texture |
|
inlinestatic |
Returns a newly allocated progress bar with the given texture and size
The progress bar texture will scale to the given size. It will not have any endcaps and will stretch the texture to the size of the bar. The progress bar will be placed at the origin of the parent and anchored at the bottom left.
| texture | The progress bar texture |
| size | The progress bar size |
|
protected |
Clears the render data, releasing all vertices and indices.
|
overridevirtual |
Disposes all of the resources used by this node.
A disposed progress bar can be safely reinitialized. Any children owned by this node will be released. They will be deleted if no other object owns them.
It is unsafe to call this on a progress bar that is still currently inside of a scene graph.
Reimplemented from cugl::scene2::SceneNode.
|
overridevirtual |
Draws this Node via the given SpriteBatch.
This method provides the code for drawing a progress bar designed to fill the current node content size. This method only worries about drawing the current node. It does not attempt to render the children. Note that this method is guaranteed to only be called when the node is visible.
| batch | The SpriteBatch to draw with. |
| transform | The global transformation matrix. |
| tint | The tint to blend with the Node color. |
Reimplemented from cugl::scene2::SceneNode.
|
protectedvirtual |
Allocate the render data necessary to render this node.
|
inline |
Returns the color blend state for this NinePatch.
Note that if color blending was set using setBlendMode, that blend mode was expanded into a blend state, and this value will be the result of this expansion. By default this value is equivalent to graphics::BlendMode#PREMULT, as image files are loaded with premultiplied alpha.
This blend state only affects the texture of the current node. It does not affect any children of the node.
|
inline |
Returns the interior internal defining progress bar.
The interior interval is specified in pixel coordinates. It is with respect to x-coordinates, which have their origin on the left.
The interior interval is similar to a NinePatch. It the interval is (3,6) then the left endcap ends at x=3 and the right endcap starts at x=6. This value is ignored if there is no texture.
|
inline |
Returns the percentage progress of this progress bar
This value is a float between 0 and 1. Changing this value will alter the size of the progress bar foreground.
|
inline |
Returns the texture used by this node.
This value can be nullptr. In that case the progress bar is a solid rectangle with no endcaps.
|
inline |
Returns the texture used by this node.
This value can be nullptr. In that case the progress bar is a solid rectangle with no endcaps.
|
inlineoverridevirtual |
Deactivates the default initializer.
This initializer may not be used for a progress bar. A progress bar either needs a texture or a size
Reimplemented from cugl::scene2::SceneNode.
| bool cugl::scene2::ProgressBar::initWithCaps | ( | const std::shared_ptr< graphics::Texture > & | texture, |
| float | left, | ||
| float | right | ||
| ) |
Initializes a progress bar with the texture and endcaps.
The progress bar will be the size of the texture. The values left and right refer to pixels in the texture. They represent the end of the left endcap and the start of the right endcap, respectively.
The progress bar will be placed at the origin of the parent and anchored at the bottom left.
| texture | The progress bar texture |
| left | The end of the left endcap in pixels |
| right | The start of the right endcap in pixels |
| bool cugl::scene2::ProgressBar::initWithCaps | ( | const std::shared_ptr< graphics::Texture > & | texture, |
| float | left, | ||
| float | right, | ||
| const Size & | size | ||
| ) |
Initializes a progress bar with the given texture and size.
The progress bar will have the given size, which includes the size of the endcaps. The values left and right refer to pixels in the texture. They represent the end of the left endcap and the start of the right endcap, respectively.
The progress bar will be placed at the origin of the parent and anchored at the bottom left.
| texture | The progress bar texture |
| left | The end of the left endcap in pixels |
| right | The start of the right endcap in pixels |
| size | The progress bar size |
|
overridevirtual |
Initializes a node with the given JSON specificaton.
This initializer is designed to receive the "data" object from the JSON passed to Scene2Loader. This JSON format supports all of the attribute values of its parent class. In addition, it supports the following additional attributes:
"texture": The name of a previously loaded texture asset "interior": An two-element array of numbers (left,right) "blend": A string matching a blend mode.
All attributes are optional. There are no required attributes.
| manager | The asset manager handling this asset |
| data | The JSON object specifying the node |
Reimplemented from cugl::scene2::SceneNode.
|
inline |
Initializes a texture-less progress bar of the given size.
The progress bar will be a rectangle with getColor as its fill color. The progress bar will be placed at the origin of the parent and anchored at the bottom left.
| size | The progress bar size |
|
inline |
Initializes a progress bar with the given texture.
The progress bar will be the size of the texture. It will not have any endcaps and will stretch the texture to the size of the bar. The progress bar will be placed at the origin of the parent and anchored at the bottom left.
| texture | The progress bar texture |
|
inline |
Initializes a progress bar with the given texture and size
The progress bar texture will scale to the given size. It will not have any endcaps and will stretch the texture to the size of the bar. The progress bar will be placed at the origin of the parent and anchored at the bottom left.
| texture | The progress bar texture |
| size | The progress bar size |
|
inline |
Refreshes this node to restore the render data.
|
inline |
Sets the color blend mode for this NinePatch.
By default this value is graphics::BlendMode#PREMULT, as image files are loaded with premultiplied alpha. You cannot determine the blend mode for a node after it is set. You can only get the blend state for that mode with the method getBlendState.
This blend state only affects the texture of the current node. It does not affect any children of the node.
| mode | The color blend mode for this NinePatch. |
|
inline |
Sets the color blend state for this NinePatch.
This provides much more fine-tuned control over color blending that setBlendMode. By default this value is equivalent to graphics::BlendMode#PREMULT, as image files are loaded with premultiplied alpha.
This blend state only affects the texture of the current node. It does not affect any children of the node.
| blend | The color blend state for this NinePatch. |
|
overridevirtual |
Sets the untransformed size of the node.
The content size remains the same no matter how the node is scaled or rotated. All nodes must have a size, though it may be degenerate (0,0).
Changing the size of a rectangle will not change the position of the node. However, if the anchor is not the bottom-left corner, it will change the origin. The Node will grow out from an anchor on an edge, and equidistant from an anchor in the center.
| size | The untransformed size of the node. |
Reimplemented from cugl::scene2::SceneNode.
|
inline |
Sets the interior internal defining the progress bar.
The interior interval is specified in pixel coordinates. It is with respect to x-coordinates, which have their origin on the left.
The interior interval is similar to a NinePatch. It the interval is (3,6) then the left endcap ends at x=3 and the right endcap starts at x=6. This value is ignored if there is no texture.
| interval | The interior interval |
| void cugl::scene2::ProgressBar::setInterior | ( | float | left, |
| float | right | ||
| ) |
Sets the interior internal defining the progress bar.
The interior interval is specified in pixel coordinates. It is with respect to x-coordinates, which have their origin on the left.
The interior interval is similar to a NinePatch. It the interval is (3,6) then the left endcap ends at x=3 and the right endcap starts at x=6. This value is ignored if there is no texture.
| left | The left side of the interior |
| right | The right side of the interior |
| void cugl::scene2::ProgressBar::setProgress | ( | float | progress | ) |
Sets the percentage progress of this progress bar
This value is a float between 0 and 1. Changing this value will alter the size of the progress bar foreground.
| progress | The percentage progress of this progress bar |
| void cugl::scene2::ProgressBar::setTexture | ( | const std::shared_ptr< graphics::Texture > & | texture | ) |
Sets the node texture to the one specified.
This method will have no effect on the polygon vertices. This class decouples the geometry from the texture. That is because we do not expect the vertices to match the texture perfectly.
| texture | A shared pointer to a Texture object. |
|
inline |
Sets the node texture to a new one allocated from a filename.
This method will have no effect on the polygon vertices. This class decouples the geometry from the texture. That is because we do not expect the vertices to match the texture perfectly.
| filename | A path to image file, e.g., "scene1/earthtile.png" |
|
overridevirtual |
Returns a string representation of this node for debugging purposes.
If verbose is true, the string will include class information. This allows us to unambiguously identify the class.
| verbose | Whether to include class information |
Reimplemented from cugl::scene2::SceneNode.
|
protected |
The blending equation for the texture
|
protected |
The interior interval
|
protected |
The render vertices for this node
|
protected |
The progress percentage of this progress bar (between 0 and 1)
|
protected |
Whether we have generated render data for this node
|
protected |
The texture for the progress bar (if it exists)