|
nCine 2025.10.r510-151873a
A cross-platform 2D game engine
|
A class for objects that can be drawn through the render queue. More...
#include <DrawableNode.h>


Public Types | |
| enum class | BlendingPreset { DISABLED , ALPHA , PREMULTIPLIED_ALPHA , ADDITIVE , MULTIPLY } |
| Presets for blending factors. More... | |
| enum class | BlendingFactor { ZERO , ONE , SRC_COLOR , ONE_MINUS_SRC_COLOR , DST_COLOR , ONE_MINUS_DST_COLOR , SRC_ALPHA , ONE_MINUS_SRC_ALPHA , DST_ALPHA , ONE_MINUS_DST_ALPHA , CONSTANT_COLOR , ONE_MINUS_CONSTANT_COLOR , CONSTANT_ALPHA , ONE_MINUS_CONSTANT_ALPHA , SRC_ALPHA_SATURATE } |
| OpenGL blending factors. | |
Public Types inherited from ncine::SceneNode | |
| enum class | VisitOrderState { ENABLED , DISABLED , SAME_AS_PARENT } |
Public Types inherited from ncine::Object | |
| enum class | ObjectType { BASE = 0 , TEXTURE , SHADER , SCENENODE , SPRITE , MESH_SPRITE , ANIMATED_SPRITE , PARTICLE , PARTICLE_SYSTEM , FONT , TEXTNODE , AUDIOBUFFER , AUDIOBUFFER_PLAYER , AUDIOSTREAM_PLAYER } |
| Object types. | |
Public Member Functions | |
| DrawableNode (SceneNode *parent, float xx, float yy) | |
| Constructor for a drawable node with a parent and a specified relative position. | |
| DrawableNode (SceneNode *parent, const Vector2f &position) | |
| Constructor for a drawable node with a parent and a specified relative position as a vector. | |
| DrawableNode (SceneNode *parent) | |
| Constructor for a drawable node with a parent and positioned in the relative origin. | |
| DrawableNode () | |
| Constructor for a drawable node with no parent and positioned in the origin. | |
| DrawableNode (DrawableNode &&) | |
| Default move constructor. | |
| DrawableNode & | operator= (DrawableNode &&) |
| Default move assignment operator. | |
| bool | draw (RenderQueue &renderQueue) override |
| Updates the draw command and adds it to the queue. | |
| virtual float | width () const |
| Returns the width of the node area. | |
| virtual float | height () const |
| Returns the height of the node area. | |
| Vector2f | size () const |
| Returns the size of the node area. | |
| virtual float | absWidth () const |
| Returns the absolute width of the node area. | |
| virtual float | absHeight () const |
| Returns the absolute height of the node area. | |
| Vector2f | absSize () const |
| Returns the absolute size of the node area. | |
| Vector2f | anchorPoint () const |
| Gets the transformation anchor point. | |
| void | setAnchorPoint (float xx, float yy) |
| Sets the transformation anchor point. | |
| void | setAnchorPoint (const Vector2f &point) |
Sets the transformation anchor point with a Vector2f | |
| bool | isBlendingEnabled () const |
| Returns true if the node renders with blending enabled. | |
| void | setBlendingEnabled (bool blendingEnabled) |
| Sets the blending state for node rendering. | |
| BlendingFactor | srcBlendingFactor () const |
| Returns the source blending factor. | |
| BlendingFactor | destBlendingFactor () const |
| Returns the destination blending factor. | |
| void | setBlendingPreset (BlendingPreset blendingPreset) |
| Sets a blending preset for source and destination blending factors. | |
| void | setBlendingFactors (BlendingFactor srcBlendingFactor, BlendingFactor destBlendingFactor) |
| Sets a specific source and destination blending factors. | |
| unsigned long int | lastFrameRendered () const |
| Returns the last frame in which any of the viewports have rendered this node (node was not culled) | |
| Rectf | aabb () const |
| Returns the axis-aligned bounding box of the node area in the last frame. | |
Public Member Functions inherited from ncine::SceneNode | |
| SceneNode (SceneNode *parent, float x, float y) | |
| Constructor for a node with a parent and a specified relative position. | |
| SceneNode (SceneNode *parent, const Vector2f &position) | |
| Constructor for a node with a parent and a specified relative position as a vector. | |
| SceneNode (SceneNode *parent) | |
| Constructor for a node with a parent and positioned in the relative origin. | |
| SceneNode () | |
| Constructor for a node with no parent and positioned in the origin. | |
| ~SceneNode () override | |
| The destructor will delete every child node. | |
| SceneNode (SceneNode &&other) | |
| Move constructor. | |
| SceneNode & | operator= (SceneNode &&other) |
| Move assignment operator. | |
| SceneNode | clone () const |
| Returns a copy of this object. | |
| const SceneNode * | parent () const |
| Returns the parent as a constant node, if there is any. | |
| SceneNode * | parent () |
| Returns the parent node, if there is any. | |
| bool | setParent (SceneNode *parentNode) |
| Sets the parent node. | |
| const nctl::Array< SceneNode * > & | children () |
| Returns the array of child nodes. | |
| const nctl::Array< const SceneNode * > & | children () const |
| Returns an array of constant child nodes. | |
| bool | addChildNode (SceneNode *childNode) |
| Adds a node as a child of this one. | |
| bool | removeChildNode (SceneNode *childNode) |
| Removes a child of this node, without reparenting nephews. | |
| bool | removeChildNodeAt (unsigned int index) |
| Removes the child at the specified index, without reparenting nephews. | |
| bool | removeAllChildrenNodes () |
| Removes all children, without reparenting nephews. | |
| bool | unlinkChildNode (SceneNode *childNode) |
| Removes a child of this node reparenting nephews as children. | |
| unsigned int | childOrderIndex () const |
| Returns the child order index of this node or zero if it does not have a parent. | |
| bool | swapChildrenNodes (unsigned int firstIndex, unsigned int secondIndex) |
| Swaps two children at the specified indices. | |
| bool | swapNodeForward () |
| Brings this node one node forward in the parent's list of children. | |
| bool | swapNodeBack () |
| Brings this node one node back in the parent's list of children. | |
| enum VisitOrderState | visitOrderState () const |
| Returns true if the node visit order is used together with the layer. | |
| void | setVisitOrderState (enum VisitOrderState visitOrderState) |
| Enables the use of the node visit order together with the layer. | |
| uint16_t | visitOrderIndex () const |
| Returns the visit drawing order of the node. | |
| virtual void | update (float frameTime) |
| Called once every frame to update the node. | |
| virtual void | visit (RenderQueue &renderQueue, unsigned int &visitOrderIndex) |
| Draws the node and visits its children. | |
| bool | isUpdateEnabled () const |
| Returns true if the node is updating. | |
| void | setUpdateEnabled (bool updateEnabled) |
| Enables or disables node updating. | |
| bool | isDrawEnabled () const |
| Returns true if the node is drawing. | |
| void | setDrawEnabled (bool drawEnabled) |
| Enables or disables node drawing. | |
| bool | isEnabled () const |
| Returns true if the node is both updating and drawing. | |
| void | setEnabled (bool isEnabled) |
| Enables or disables both node updating and drawing. | |
| Vector2f | position () const |
| Returns node position relative to its parent. | |
| Vector2f | absPosition () const |
| Returns absolute node position. | |
| void | setPosition (float x, float y) |
| Sets the node position through two coordinates. | |
| void | setPosition (const Vector2f &position) |
| Sets the node position through a vector. | |
| void | setPositionX (float x) |
| Sets the X coordinate of the node position. | |
| void | setPositionY (float y) |
| Sets the Y coordinate of the node position. | |
| void | move (float x, float y) |
| Moves the node based on two offsets. | |
| void | move (const Vector2f &position) |
| Adds a move vector to the node current position. | |
| void | moveX (float x) |
| Moves the node by an offset on the X axis. | |
| void | moveY (float y) |
| Moves the node by an offset on the Y axis. | |
| Vector2f | absAnchorPoint () const |
| Gets the absolute transformation anchor point in pixels. | |
| void | setAbsAnchorPoint (float x, float y) |
| Sets the absolute transformation anchor point in pixels. | |
| void | setAbsAnchorPoint (const Vector2f &point) |
Sets the absolute transformation anchor point in pixels with a Vector2f | |
| const Vector2f & | scale () const |
| Gets the node scale factors. | |
| const Vector2f & | absScale () const |
| Gets the node absolute scale factors. | |
| void | setScale (float scaleFactor) |
| Scales the node size both horizontally and vertically. | |
| void | setScale (float scaleFactorX, float scaleFactorY) |
| Scales the node size both horizontally and vertically. | |
| void | setScale (const Vector2f &scaleFactor) |
Scales the node size both horizontally and vertically with a Vector2f | |
| float | rotation () const |
| Gets the node rotation in degrees. | |
| float | absRotation () const |
| Gets the node absolute rotation in degrees. | |
| void | setRotation (float rotation) |
| Sets the node rotation in degrees. | |
| Color | color () const |
| Gets the node color. | |
| Color | absColor () const |
| Gets the node absolute color. | |
| void | setColor (Color color) |
Sets the node color through a Color object. | |
| void | setColorF (Colorf color) |
Sets the node color through a Colorf object. | |
| void | setColor (unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha) |
| Sets the node color through unsigned char components. | |
| void | setColorF (float red, float green, float blue, float alpha) |
| Sets the node color through float components. | |
| unsigned char | alpha () const |
| Gets the node alpha. | |
| unsigned char | absAlpha () const |
| Gets the node absolute alpha. | |
| void | setAlpha (unsigned char alpha) |
| Sets the node alpha through an unsigned char component. | |
| void | setAlphaF (float alpha) |
| Sets the node alpha through a float component. | |
| uint16_t | layer () const |
| Gets the node rendering layer. | |
| uint16_t | absLayer () const |
| Gets the node absolute rendering layer. | |
| void | setLayer (uint16_t layer) |
| Sets the node rendering layer. | |
| const Matrix4x4f & | worldMatrix () const |
| Gets the node world matrix. | |
| void | setWorldMatrix (const Matrix4x4f &worldMatrix) |
Sets the node world matrix (only useful when called inside onPostUpdate()) | |
| const Matrix4x4f & | localMatrix () const |
| Gets the node local matrix. | |
| void | setLocalMatrix (const Matrix4x4f &localMatrix) |
| Sets the node local matrix. | |
| bool | deleteChildrenOnDestruction () const |
| Gets the delete children on destruction flag. | |
| void | setDeleteChildrenOnDestruction (bool shouldDeleteChildrenOnDestruction) |
| Sets the delete children on destruction flag. | |
| unsigned long int | lastFrameUpdated () const |
| Returns the last frame in which any of the viewports have updated this node. | |
Public Member Functions inherited from ncine::Object | |
| Object (ObjectType type) | |
| Constructs an object with a specified type and adds it to the index. | |
| Object (ObjectType type, const char *name) | |
| Constructs an object with a specified type and name and adds it to the index. | |
| virtual | ~Object () |
| Removes an object from the index and then destroys it. | |
| Object (Object &&other) | |
| Move constructor. | |
| Object & | operator= (Object &&other) |
| Move assignment operator. | |
| unsigned int | id () const |
| Returns the object identification number. | |
| ObjectType | type () const |
| Returns the object type (RTTI) | |
| const char * | name () const |
| Returns the object name. | |
| void | setName (const char *name) |
| Sets the object name. | |
Static Public Attributes | |
| static const Vector2f | AnchorCenter |
| static const Vector2f | AnchorBottomLeft |
| static const Vector2f | AnchorTopLeft |
| static const Vector2f | AnchorBottomRight |
| static const Vector2f | AnchorTopRight |
Static Public Attributes inherited from ncine::SceneNode | |
| static const float | MinRotation = 0.5f |
| The minimum amount of rotation to trigger a sine and cosine calculation. | |
Static Public Attributes inherited from ncine::Object | |
| static const unsigned int | MaxNameLength = 128 |
| Maximum length for an object name. | |
Protected Member Functions | |
| virtual void | updateAabb () |
| Calculates updated values for the AABB. | |
| void | updateCulling () |
| Called by each viewport update method to update a node culling state. | |
| DrawableNode (const DrawableNode &other) | |
| Protected copy constructor used to clone objects. | |
| virtual void | shaderHasChanged ()=0 |
| Performs the required tasks upon a change to the shader. | |
| virtual void | updateRenderCommand ()=0 |
| Updates the render command. | |
Protected Member Functions inherited from ncine::SceneNode | |
| SceneNode & | operator= (const SceneNode &)=delete |
| Deleted assignment operator. | |
| SceneNode (const SceneNode &other) | |
| Protected copy constructor used to clone objects. | |
| void | swapChildPointer (SceneNode *first, SceneNode *second) |
| Swaps the child pointer of a parent when moving an object. | |
| virtual void | transform () |
Protected Member Functions inherited from ncine::Object | |
| Object (const Object &other) | |
| Protected copy constructor used to clone objects. | |
Protected Attributes | |
| float | width_ |
| Node width in pixel. | |
| float | height_ |
| Node height in pixel. | |
| nctl::UniquePtr< RenderCommand > | renderCommand_ |
| The render command class associated with this node. | |
| unsigned long int | lastFrameRendered_ |
| The last frame any viewports rendered this node. | |
| Rectf | aabb_ |
| Axis-aligned bounding box of the node area. | |
Protected Attributes inherited from ncine::SceneNode | |
| bool | updateEnabled_ |
| bool | drawEnabled_ |
| SceneNode * | parent_ |
| A pointer to the parent node. | |
| nctl::Array< SceneNode * > | children_ |
| The array of child nodes. | |
| unsigned int | childOrderIndex_ |
| The order index of this node among its siblings. | |
| bool | withVisitOrder_ |
| When enabled the visit order is used to resolve the drawing order of same layer nodes. | |
| enum VisitOrderState | visitOrderState_ |
| The visit order state of this node. | |
| uint16_t | visitOrderIndex_ |
| The visit order index of this node. | |
| Vector2f | position_ |
| The node relative position. | |
| Vector2f | anchorPoint_ |
| Vector2f | scaleFactor_ |
| Horizontal and vertical scale factors for node size. | |
| float | rotation_ |
| Degrees for clock-wise node rotation in degrees. | |
| Color | color_ |
| Node color for transparency and translucency. | |
| uint16_t | layer_ |
| The node rendering layer. | |
| Vector2f | absPosition_ |
Absolute position as calculated by the transform() function. | |
| Vector2f | absScaleFactor_ |
Absolute horizontal and vertical scale factors as calculated by the transform() function. | |
| float | absRotation_ |
Absolute node rotation as calculated by the transform() function. | |
| Color | absColor_ |
Absolute node color as calculated by the transform() function. | |
| uint16_t | absLayer_ |
Absolute node rendering layer as calculated by the transform() function. | |
| Matrix4x4f | worldMatrix_ |
| World transformation matrix (calculated from local and parent's world) | |
| Matrix4x4f | localMatrix_ |
| Local transformation matrix. | |
| bool | shouldDeleteChildrenOnDestruction_ |
| A flag indicating whether the destructor should also delete all children. | |
| nctl::BitSet< uint8_t > | dirtyBits_ |
| Bitset that stores the various dirty states bits. | |
| unsigned long int | lastFrameUpdated_ |
| The last frame any viewport updated this node. | |
Protected Attributes inherited from ncine::Object | |
| ObjectType | type_ |
| Object type. | |
Friends | |
| class | ShaderState |
| class | Viewport |
Additional Inherited Members | |
Static Public Member Functions inherited from ncine::SceneNode | |
| static ObjectType | sType () |
Static Public Member Functions inherited from ncine::Object | |
| static ObjectType | sType () |
| Static method to return class type. | |
| template<class T > | |
| static T * | fromId (unsigned int id) |
| Returns a casted pointer to the object with the specified id, if any exists. | |
Protected Types inherited from ncine::SceneNode | |
| enum | DirtyBitPositions { TransformationBit = 0 , ColorBit = 1 , SizeBit = 2 , TextureBit = 3 , AabbBit = 4 , TransformationUploadBit = 5 , ColorUploadBit = 6 } |
| Bit positions inside the dirty bitset. | |
A class for objects that can be drawn through the render queue.
|
strong |
|
inlinevirtual |
Returns the absolute height of the node area.
Reimplemented in ncine::TextNode.
|
inlinevirtual |
Returns the absolute width of the node area.
Reimplemented in ncine::TextNode.
|
overridevirtual |
Updates the draw command and adds it to the queue.
Reimplemented from ncine::SceneNode.
Reimplemented in ncine::TextNode.
|
inlinevirtual |
Returns the height of the node area.
Reimplemented in ncine::TextNode.
| void ncine::DrawableNode::setAnchorPoint | ( | float | xx, |
| float | yy | ||
| ) |
Sets the transformation anchor point.
setAbsAnchorPoint() instead.
|
protectedpure virtual |
Performs the required tasks upon a change to the shader.
Implemented in ncine::BaseSprite.
|
protectedpure virtual |
Updates the render command.
Implemented in ncine::BaseSprite.
|
inlinevirtual |
Returns the width of the node area.
Reimplemented in ncine::TextNode.