cocos2d-x  3.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Node Class Reference

Node is the base element of the Scene Graph. More...

#include <CCNode.h>

Inheritance diagram for Node:
Ref __NodeRGBA AtlasNode ClippingNode DrawNode AssetsManager Scale9Sprite TableViewCell LabelBMFont LabelTTF Layer MenuItem MotionStreak NodeGrid ParallaxNode ParticleBatchNode ParticleSystem ProgressTimer ProtectedNode RenderTexture Scene Sprite SpriteBatchNode TMXTiledMap CCBFile Armature BatchNode Bone GLNode Skeleton

Public Member Functions

virtual bool isRunning () const
 Returns whether or not the node is "running". More...
 
void scheduleUpdateWithPriorityLua (int handler, int priority)
 Schedules for lua script. More...
 
virtual void cleanup ()
 Stops all running actions and schedulers. More...
 
virtual void draw (Renderer *renderer, const kmMat4 &transform, bool transformUpdated)
 Override this method to draw your own node. More...
 
virtual void draw () final
virtual void visit (Renderer *renderer, const kmMat4 &parentTransform, bool parentTransformUpdated)
 Visits this node's children and draw them recursively. More...
 
virtual void visit () final
virtual ScenegetScene ()
 Returns the Scene that contains the Node. More...
 
virtual Rect getBoundingBox () const
 Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE Rect 
boundingBox () const
virtual void setEventDispatcher (EventDispatcher *dispatcher)
virtual EventDispatchergetEventDispatcher () const
void setPhysicsBody (PhysicsBody *body)
 set the PhysicsBody that let the sprite effect with physics More...
 
PhysicsBody * getPhysicsBody () const
 get the PhysicsBody the sprite have More...
 
virtual GLubyte getOpacity () const
virtual GLubyte getDisplayedOpacity () const
virtual void setOpacity (GLubyte opacity)
virtual void updateDisplayedOpacity (GLubyte parentOpacity)
virtual bool isCascadeOpacityEnabled () const
virtual void setCascadeOpacityEnabled (bool cascadeOpacityEnabled)
virtual const Color3BgetColor (void) const
virtual const Color3BgetDisplayedColor () const
virtual void setColor (const Color3B &color)
virtual void updateDisplayedColor (const Color3B &parentColor)
virtual bool isCascadeColorEnabled () const
virtual void setCascadeColorEnabled (bool cascadeColorEnabled)
virtual void setOpacityModifyRGB (bool bValue)
virtual bool isOpacityModifyRGB () const
Setters & Getters for Graphic Peroperties
virtual void setLocalZOrder (int localZOrder)
 LocalZOrder is the 'key' used to sort the node relative to its siblings. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE void 
setZOrder (int localZOrder)
virtual void _setLocalZOrder (int z)
virtual int getLocalZOrder () const
 Gets the local Z order of this node. More...
 
virtual CC_DEPRECATED_ATTRIBUTE int getZOrder () const
virtual void setGlobalZOrder (float globalZOrder)
 Defines the oder in which the nodes are renderer. More...
 
virtual float getGlobalZOrder () const
 Returns the Node's Global Z Order. More...
 
virtual void setScaleX (float scaleX)
 Sets the scale (x) of the node. More...
 
virtual float getScaleX () const
 Returns the scale factor on X axis of this node. More...
 
virtual void setScaleY (float scaleY)
 Sets the scale (y) of the node. More...
 
virtual float getScaleY () const
 Returns the scale factor on Y axis of this node. More...
 
virtual void setScaleZ (float scaleZ)
 Changes the scale factor on Z axis of this node. More...
 
virtual float getScaleZ () const
 Returns the scale factor on Z axis of this node. More...
 
virtual void setScale (float scale)
 Sets the scale (x,y,z) of the node. More...
 
virtual float getScale () const
 Gets the scale factor of the node, when X and Y have the same scale factor. More...
 
virtual void setScale (float scaleX, float scaleY)
 Sets the scale (x,y) of the node. More...
 
virtual void setPosition (const Point &position)
 Sets the position (x,y) of the node in its parent's coordinate system. More...
 
virtual const PointgetPosition () const
 Gets the position (x,y) of the node in its parent's coordinate system. More...
 
virtual void setPosition (float x, float y)
 Sets the position (x,y) of the node in its parent's coordinate system. More...
 
virtual void getPosition (float *x, float *y) const
 Gets position in a more efficient way, returns two number instead of a Point object. More...
 
virtual void setPositionX (float x)
 Gets/Sets x or y coordinate individually for position. More...
 
virtual float getPositionX (void) const
virtual void setPositionY (float y)
virtual float getPositionY (void) const
virtual void setPosition3D (const Vertex3F &position)
 Sets the position (X, Y, and Z) in its parent's coordinate system. More...
 
virtual Vertex3F getPosition3D () const
 returns the position (X,Y,Z) in its parent's coordinate system More...
 
virtual void setPositionZ (float positionZ)
 Sets the 'z' coordinate in the position. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE void 
setVertexZ (float vertexZ)
virtual float getPositionZ () const
 Gets position Z coordinate of this node. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE float 
getVertexZ () const
virtual void setSkewX (float skewX)
 Changes the X skew angle of the node in degrees. More...
 
virtual float getSkewX () const
 Returns the X skew angle of the node in degrees. More...
 
virtual void setSkewY (float skewY)
 Changes the Y skew angle of the node in degrees. More...
 
virtual float getSkewY () const
 Returns the Y skew angle of the node in degrees. More...
 
virtual void setAnchorPoint (const Point &anchorPoint)
 Sets the anchor point in percent. More...
 
virtual const PointgetAnchorPoint () const
 Returns the anchor point in percent. More...
 
virtual const PointgetAnchorPointInPoints () const
 Returns the anchorPoint in absolute pixels. More...
 
virtual void setContentSize (const Size &contentSize)
 Sets the untransformed size of the node. More...
 
virtual const SizegetContentSize () const
 Returns the untransformed size of the node. More...
 
virtual void setVisible (bool visible)
 Sets whether the node is visible. More...
 
virtual bool isVisible () const
 Determines if the node is visible. More...
 
virtual void setRotation (float rotation)
 Sets the rotation (angle) of the node in degrees. More...
 
virtual float getRotation () const
 Returns the rotation of the node in degrees. More...
 
virtual void setRotation3D (const Vertex3F &rotation)
 Sets the rotation (X,Y,Z) in degrees. More...
 
virtual Vertex3F getRotation3D () const
 returns the rotation (X,Y,Z) in degrees. More...
 
virtual void setRotationSkewX (float rotationX)
 Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE void 
setRotationX (float rotationX)
virtual float getRotationSkewX () const
 Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE float 
getRotationX () const
virtual void setRotationSkewY (float rotationY)
 Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE void 
setRotationY (float rotationY)
virtual float getRotationSkewY () const
 Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE float 
getRotationY () const
void setOrderOfArrival (int orderOfArrival)
 Sets the arrival order when this node has a same ZOrder with other children. More...
 
int getOrderOfArrival () const
 Returns the arrival order, indicates which children is added previously. More...
 
CC_DEPRECATED_ATTRIBUTE void setGLServerState (int serverState)
CC_DEPRECATED_ATTRIBUTE int getGLServerState () const
virtual void ignoreAnchorPointForPosition (bool ignore)
 Sets whether the anchor point will be (0,0) when you position this node. More...
 
virtual bool isIgnoreAnchorPointForPosition () const
 Gets whether the anchor point will be (0,0) when you position this node. More...
 
Children and Parent
virtual void addChild (Node *child)
 Adds a child to the container with z-order as 0. More...
 
virtual void addChild (Node *child, int localZOrder)
 Adds a child to the container with a local z-order. More...
 
virtual void addChild (Node *child, int localZOrder, int tag)
 Adds a child to the container with z order and tag. More...
 
virtual NodegetChildByTag (int tag)
 Gets a child from the container with its tag. More...
 
virtual Vector< Node * > & getChildren ()
 Returns the array of the node's children. More...
 
virtual const Vector< Node * > & getChildren () const
virtual ssize_t getChildrenCount () const
 Returns the amount of children. More...
 
virtual void setParent (Node *parent)
 Sets the parent node. More...
 
virtual NodegetParent ()
 Returns a pointer to the parent node. More...
 
virtual const NodegetParent () const
virtual void removeFromParent ()
 Removes this node itself from its parent node with a cleanup. More...
 
virtual void removeFromParentAndCleanup (bool cleanup)
 Removes this node itself from its parent node. More...
 
virtual void removeChild (Node *child, bool cleanup=true)
 Removes a child from the container. More...
 
virtual void removeChildByTag (int tag, bool cleanup=true)
 Removes a child from the container by tag value. More...
 
virtual void removeAllChildren ()
 Removes all children from the container with a cleanup. More...
 
virtual void removeAllChildrenWithCleanup (bool cleanup)
 Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter. More...
 
virtual void reorderChild (Node *child, int localZOrder)
 Reorders a child according to a new z value. More...
 
virtual void sortAllChildren ()
 Sorts the children array once before drawing, instead of every time when a child is added or reordered. More...
 
Tag & User data
virtual int getTag () const
 Returns a tag that is used to identify the node easily. More...
 
virtual void setTag (int tag)
 Changes the tag that is used to identify the node easily. More...
 
virtual void * getUserData ()
 Returns a custom user data pointer. More...
 
virtual const void * getUserData () const
virtual void setUserData (void *userData)
 Sets a custom user data pointer. More...
 
virtual RefgetUserObject ()
 Returns a user assigned Object. More...
 
virtual const RefgetUserObject () const
virtual void setUserObject (Ref *userObject)
 Returns a user assigned Object. More...
 
Shader Program
virtual GLProgramgetShaderProgram ()
 Return the shader program currently used for this node. More...
 
virtual const GLProgramgetShaderProgram () const
virtual void setShaderProgram (GLProgram *shaderProgram)
 Sets the shader program for this node. More...
 
Event Callbacks
virtual void onEnter ()
 Event callback that is invoked every time when Node enters the 'stage'. More...
 
virtual void onEnterTransitionDidFinish ()
 Event callback that is invoked when the Node enters in the 'stage'. More...
 
virtual void onExit ()
 Event callback that is invoked every time the Node leaves the 'stage'. More...
 
virtual void onExitTransitionDidStart ()
 Event callback that is called every time the Node leaves the 'stage'. More...
 
Actions
virtual void setActionManager (ActionManager *actionManager)
 Sets the ActionManager object that is used by all actions. More...
 
virtual ActionManagergetActionManager ()
 Gets the ActionManager object that is used by all actions. More...
 
virtual const ActionManagergetActionManager () const
ActionrunAction (Action *action)
 Executes an action, and returns the action that is executed. More...
 
void stopAllActions ()
 Stops and removes all actions from the running action list . More...
 
void stopAction (Action *action)
 Stops and removes an action from the running action list. More...
 
void stopActionByTag (int tag)
 Removes an action from the running action list by its tag. More...
 
ActiongetActionByTag (int tag)
 Gets an action from the running action list by its tag. More...
 
ssize_t getNumberOfRunningActions () const
 Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays). More...
 
CC_DEPRECATED_ATTRIBUTE ssize_t numberOfRunningActions () const
Scheduler and Timer
virtual void setScheduler (Scheduler *scheduler)
 Sets a Scheduler object that is used to schedule all "updates" and timers. More...
 
virtual SchedulergetScheduler ()
 Gets a Sheduler object. More...
 
virtual const SchedulergetScheduler () const
bool isScheduled (SEL_SCHEDULE selector)
 Checks whether a selector is scheduled. More...
 
void scheduleUpdate (void)
 Schedules the "update" method. More...
 
void scheduleUpdateWithPriority (int priority)
 Schedules the "update" method with a custom priority. More...
 
void unscheduleUpdate (void)
void schedule (SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
 Schedules a custom selector. More...
 
void schedule (SEL_SCHEDULE selector, float interval)
 Schedules a custom selector with an interval time in seconds. More...
 
void scheduleOnce (SEL_SCHEDULE selector, float delay)
 Schedules a selector that runs only once, with a delay of 0 or larger. More...
 
void schedule (SEL_SCHEDULE selector)
 Schedules a custom selector, the scheduled selector will be ticked every frame. More...
 
void unschedule (SEL_SCHEDULE selector)
 Unschedules a custom selector. More...
 
void unscheduleAllSelectors (void)
 Unschedule all scheduled selectors: custom selectors, and the 'update' selector. More...
 
void resume (void)
 Resumes all scheduled selectors, actions and event listeners. More...
 
void pause (void)
 Pauses all scheduled selectors, actions and event listeners. More...
 
CC_DEPRECATED_ATTRIBUTE void resumeSchedulerAndActions (void)
 Resumes all scheduled selectors, actions and event listeners. More...
 
CC_DEPRECATED_ATTRIBUTE void pauseSchedulerAndActions (void)
 Pauses all scheduled selectors, actions and event listeners. More...
 
virtual void update (float delta)
Transformations
virtual void updateTransform ()
 Calls children's updateTransform() method recursively. More...
 
virtual const kmMat4 & getNodeToParentTransform () const
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. More...
 
virtual AffineTransform getNodeToParentAffineTransform () const
virtual void setNodeToParentTransform (const kmMat4 &transform)
 Sets the Transformation matrix manually. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform 
nodeToParentTransform () const
virtual const kmMat4 & getParentToNodeTransform () const
 Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates. More...
 
virtual AffineTransform getParentToNodeAffineTransform () const
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform 
parentToNodeTransform () const
virtual kmMat4 getNodeToWorldTransform () const
 Returns the world affine transform matrix. More...
 
virtual AffineTransform getNodeToWorldAffineTransform () const
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform 
nodeToWorldTransform () const
virtual kmMat4 getWorldToNodeTransform () const
 Returns the inverse world affine transform matrix. More...
 
virtual AffineTransform getWorldToNodeAffineTransform () const
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform 
worldToNodeTransform () const
Coordinate Converters
Point convertToNodeSpace (const Point &worldPoint) const
 Converts a Point to node (local) space coordinates. More...
 
Point convertToWorldSpace (const Point &nodePoint) const
 Converts a Point to world space coordinates. More...
 
Point convertToNodeSpaceAR (const Point &worldPoint) const
 Converts a Point to node (local) space coordinates. More...
 
Point convertToWorldSpaceAR (const Point &nodePoint) const
 Converts a local Point to world space coordinates.The result is in Points. More...
 
Point convertTouchToNodeSpace (Touch *touch) const
 convenience methods which take a Touch instead of Point More...
 
Point convertTouchToNodeSpaceAR (Touch *touch) const
 converts a Touch (world coordinates) into a local coordinate. More...
 
void setAdditionalTransform (kmMat4 *additionalTransform)
 Sets an additional transform matrix to the node. More...
 
void setAdditionalTransform (const AffineTransform &additionalTransform)
component functions
ComponentgetComponent (const std::string &pName)
 gets a component by its name More...
 
virtual bool addComponent (Component *pComponent)
 adds a component More...
 
virtual bool removeComponent (const std::string &pName)
 removes a component by its name More...
 
virtual void removeAllComponents ()
 removes all components More...
 
- Public Member Functions inherited from Ref
void retain ()
 Retains the ownership. More...
 
void release ()
 Release the ownership immediately. More...
 
Refautorelease ()
 Release the ownership sometime soon automatically. More...
 
unsigned int getReferenceCount () const
 Returns the Ref's current reference count. More...
 
virtual ~Ref ()

Static Public Attributes

static const int INVALID_TAG = -1
 Default tag used for all the nodes. More...
 

Protected Member Functions

 Node ()
virtual ~Node ()
virtual bool init ()
void childrenAlloc (void)
 lazy allocs More...
 
void insertChild (Node *child, int z)
 helper that reorder a child More...
 
void detachChild (Node *child, ssize_t index, bool doCleanup)
 Removes a child, call child->onExit(), do cleanup, remove it from children array. More...
 
Point convertToWindowSpace (const Point &nodePoint) const
 Convert cocos2d coordinates to UI windows coordinate. More...
 
kmMat4 transform (const kmMat4 &parentTransform)
virtual void updateCascadeOpacity ()
virtual void disableCascadeOpacity ()
virtual void updateCascadeColor ()
virtual void disableCascadeColor ()
virtual void updateColor ()
- Protected Member Functions inherited from Ref
 Ref ()
 Constructor. More...
 

Protected Attributes

float _rotationX
 rotation on the X-axis More...
 
float _rotationY
 rotation on the Y-axis More...
 
float _rotationZ_X
 rotation angle on Z-axis, component X More...
 
float _rotationZ_Y
 rotation angle on Z-axis, component Y More...
 
float _scaleX
 scaling factor on x-axis More...
 
float _scaleY
 scaling factor on y-axis More...
 
float _scaleZ
 scaling factor on z-axis More...
 
Point _position
 position of the node More...
 
float _positionZ
 OpenGL real Z position. More...
 
float _skewX
 skew angle on x-axis More...
 
float _skewY
 skew angle on y-axis More...
 
Point _anchorPointInPoints
 anchor point in points More...
 
Point _anchorPoint
 anchor point normalized (NOT in points) More...
 
Size _contentSize
 untransformed size of the node More...
 
kmMat4 _modelViewTransform
 ModelView transform of the Node. More...
 
kmMat4 _transform
 transform More...
 
bool _transformDirty
 transform dirty flag More...
 
kmMat4 _inverse
 inverse transform More...
 
bool _inverseDirty
 inverse transform dirty flag More...
 
kmMat4 _additionalTransform
 transform More...
 
bool _useAdditionalTransform
 The flag to check whether the additional transform is dirty. More...
 
bool _transformUpdated
 Whether or not the Transform object was updated since the last frame. More...
 
int _localZOrder
 Local order (relative to its siblings) used to sort the node. More...
 
float _globalZOrder
 Global order used to sort the node. More...
 
Vector< Node * > _children
 array of children nodes More...
 
Node_parent
 weak reference to parent node More...
 
int _tag
 a tag. Can be any number you assigned just to identify this node More...
 
std::string _name
 a string label, an user defined string to identify this node More...
 
void * _userData
 A user assingned void pointer, Can be point to any cpp object. More...
 
Ref_userObject
 A user assigned Object. More...
 
GLProgram_shaderProgram
 OpenGL shader. More...
 
int _orderOfArrival
 used to preserve sequence while sorting children with the same localZOrder More...
 
Scheduler_scheduler
 scheduler used to schedule timers and updates More...
 
ActionManager_actionManager
 a pointer to ActionManager singleton, which is used to handle all the actions More...
 
EventDispatcher_eventDispatcher
 event dispatcher used to dispatch all kinds of events More...
 
bool _running
 is running More...
 
bool _visible
 is this node visible More...
 
bool _ignoreAnchorPointForPosition
 true if the Anchor Point will be (0,0) when you position the Node, false otherwise. More...
 
bool _reorderChildDirty
 children order dirty flag More...
 
bool _isTransitionFinished
 flag to indicate whether the transition was finished More...
 
int _scriptHandler
 script handler for onEnter() & onExit(), used in Javascript binding and Lua binding. More...
 
int _updateScriptHandler
 script handler for update() callback per frame, which is invoked from lua & javascript. More...
 
ccScriptType _scriptType
 type of script binding, lua or javascript More...
 
ComponentContainer_componentContainer
 Dictionary of components. More...
 
PhysicsBody * _physicsBody
 the physicsBody the node have More...
 
GLubyte _displayedOpacity
GLubyte _realOpacity
Color3B _displayedColor
Color3B _realColor
bool _cascadeColorEnabled
bool _cascadeOpacityEnabled
- Protected Attributes inherited from Ref
unsigned int _referenceCount
 count of references More...
 

Static Protected Attributes

static int s_globalOrderOfArrival

Constructor, Destructor and Initializers

static Nodecreate (void)
 Allocates and initializes a node. More...
 
virtual std::string getDescription () const
 Gets the description string. More...
 

Detailed Description

Node is the base element of the Scene Graph.

Elements of the Scene Graph must be Node objects or subclasses of it. The most common Node objects are: Scene, Layer, Sprite, Menu, Label.

The main features of a Node are:

  • They can contain other Node objects (addChild, getChildByTag, removeChild, etc)
  • They can schedule periodic callback (schedule, unschedule, etc)
  • They can execute actions (runAction, stopAction, etc)

Subclassing a Node usually means (one/all) of:

  • overriding init to initialize resources and schedule callbacks
  • create callbacks to handle the advancement of time
  • overriding draw to render the node

Properties of Node:

  • position (default: x=0, y=0)
  • scale (default: x=1, y=1)
  • rotation (in degrees, clockwise) (default: 0)
  • anchor point (default: x=0, y=0)
  • contentSize (default: width=0, height=0)
  • visible (default: true)

Limitations:

  • A Node is a "void" object. If you want to draw something on the screen, you should use a Sprite instead. Or subclass Node and override draw.

Constructor & Destructor Documentation

Node ( )
protected
virtual ~Node ( )
protectedvirtual

Member Function Documentation

virtual void _setLocalZOrder ( int  z)
virtual
virtual void addChild ( Node child)
virtual

Adds a child to the container with z-order as 0.

If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.

Parameters
childA child node

Reimplemented in ScrollView, Layout, ListView, PageView, Menu, and BatchNode.

virtual void addChild ( Node child,
int  localZOrder 
)
virtual

Adds a child to the container with a local z-order.

If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.

Parameters
childA child node
zOrderZ order for drawing priority. Please refer to setLocalZOrder(int)

Reimplemented in ScrollView, Layout, ListView, PageView, Menu, and BatchNode.

virtual void addChild ( Node child,
int  localZOrder,
int  tag 
)
virtual

Adds a child to the container with z order and tag.

If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.

Parameters
childA child node
zOrderZ order for drawing priority. Please refer to setLocalZOrder(int)
tagAn integer to identify the node easily. Please refer to setTag(int)

Reimplemented in Sprite, ScrollView, Layout, Label, ScrollView, TMXLayer, ListView, PageView, SpriteBatchNode, Menu, ParticleBatchNode, Scene, ParallaxNode, and BatchNode.

virtual bool addComponent ( Component pComponent)
virtual

adds a component

virtual
CC_DEPRECATED_ATTRIBUTE Rect
boundingBox
( ) const
inlinevirtual
Deprecated:
Use getBoundingBox instead
void childrenAlloc ( void  )
protected

lazy allocs

virtual void cleanup ( )
virtual

Stops all running actions and schedulers.

Reimplemented in ProtectedNode, and TransitionScene.

Point convertToNodeSpace ( const Point worldPoint) const

Converts a Point to node (local) space coordinates.

The result is in Points.

Point convertToNodeSpaceAR ( const Point worldPoint) const

Converts a Point to node (local) space coordinates.

The result is in Points. treating the returned/received node point as anchor relative.

Point convertTouchToNodeSpace ( Touch touch) const

convenience methods which take a Touch instead of Point

Point convertTouchToNodeSpaceAR ( Touch touch) const

converts a Touch (world coordinates) into a local coordinate.

This method is AR (Anchor Relative).

Point convertToWindowSpace ( const Point nodePoint) const
protected

Convert cocos2d coordinates to UI windows coordinate.

Point convertToWorldSpace ( const Point nodePoint) const

Converts a Point to world space coordinates.

The result is in Points.

Point convertToWorldSpaceAR ( const Point nodePoint) const

Converts a local Point to world space coordinates.The result is in Points.

treating the returned/received node point as anchor relative.

static Node* create ( void  )
static

Allocates and initializes a node.

Returns
A initialized node which is marked as "autorelease".
void detachChild ( Node child,
ssize_t  index,
bool  doCleanup 
)
protected

Removes a child, call child->onExit(), do cleanup, remove it from children array.

virtual void disableCascadeColor ( )
protectedvirtual

Reimplemented in ProtectedNode.

virtual void disableCascadeOpacity ( )
protectedvirtual
virtual void draw ( Renderer renderer,
const kmMat4 &  transform,
bool  transformUpdated 
)
virtual

Override this method to draw your own node.

The following GL states will be enabled by default:

  • glEnableClientState(GL_VERTEX_ARRAY);
  • glEnableClientState(GL_COLOR_ARRAY);
  • glEnableClientState(GL_TEXTURE_COORD_ARRAY);
  • glEnable(GL_TEXTURE_2D); AND YOU SHOULD NOT DISABLE THEM AFTER DRAWING YOUR NODE But if you enable any other GL state, you should disable it after drawing your node.

Reimplemented in TransitionFadeTR, TransitionSplitCols, TransitionTurnOffTiles, TransitionCrossFade, Sprite, LayerColor, Label, Armature, RenderTexture, SpriteBatchNode, LabelBMFont, ProgressTimer, ParticleSystemQuad, ParticleBatchNode, DrawNode, TransitionScene, MotionStreak, LabelAtlas, TransitionPageTurn, AtlasNode, Skeleton, PhysicsDebugNode, BatchNode, Skin, and GLNode.

virtual void draw ( )
finalvirtual
Action* getActionByTag ( int  tag)

Gets an action from the running action list by its tag.

See Also
setTag(int), getTag().
Returns
The action object with the given tag.
virtual ActionManager*
getActionManager
( )
inlinevirtual

Gets the ActionManager object that is used by all actions.

See Also
setActionManager(ActionManager*)
Returns
A ActionManager object.
virtual const ActionManager*
getActionManager
( ) const
inlinevirtual
virtual const Point& getAnchorPoint ( ) const
virtual

Returns the anchor point in percent.

See Also
setAnchorPoint(const Point&)
Returns
The anchor point of node.
virtual const Point&
getAnchorPointInPoints
( ) const
virtual

Returns the anchorPoint in absolute pixels.

Warning
You can only read it. If you wish to modify it, use anchorPoint instead.
See Also
getAnchorPoint()
Returns
The anchor point in absolute pixels.

Reimplemented in Armature.

virtual Rect getBoundingBox ( ) const
virtual

Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system.

Returns
An AABB (axis-aligned bounding-box) in its parent's coordinate system

Reimplemented in Label, Armature, LabelTTF, LabelBMFont, and Skeleton.

virtual Node* getChildByTag ( int  tag)
virtual

Gets a child from the container with its tag.

Parameters
tagAn identifier to find the child node.
Returns
a Node object whose tag equals to the input parameter

Reimplemented in ScrollView, ListView, PageView, and LabelBMFont.

virtual Vector<Node*>& getChildren ( )
inlinevirtual

Returns the array of the node's children.

Returns
the array the node's children

Reimplemented in ScrollView, ListView, and PageView.

virtual const Vector<Node*>
& getChildren
( ) const
inlinevirtual

Reimplemented in ScrollView, ListView, and PageView.

virtual ssize_t getChildrenCount ( ) const
virtual

Returns the amount of children.

Returns
The amount of children.

Reimplemented in ScrollView, ListView, and PageView.

virtual const Color3B& getColor ( void  ) const
virtual
Component* getComponent ( const std::string &  pName)

gets a component by its name

virtual const Size& getContentSize ( ) const
virtual

Returns the untransformed size of the node.

See Also
setContentSize(const Size&)
Returns
The untransformed size of the node.

Reimplemented in Label, ScrollView, LabelTTF, and LabelBMFont.

virtual std::string getDescription ( ) const
virtual
virtual const Color3B&
getDisplayedColor
( ) const
virtual

Reimplemented in __NodeRGBA, and __LayerRGBA.

virtual GLubyte getDisplayedOpacity ( ) const
virtual

Reimplemented in __NodeRGBA, and __LayerRGBA.

virtual EventDispatcher*
getEventDispatcher
( ) const
inlinevirtual
virtual float getGlobalZOrder ( ) const
inlinevirtual

Returns the Node's Global Z Order.

See Also
setGlobalZOrder(int)
Returns
The node's global Z order
CC_DEPRECATED_ATTRIBUTE int
getGLServerState
( ) const
inline
Deprecated:
No longer needed
virtual int getLocalZOrder ( ) const
inlinevirtual

Gets the local Z order of this node.

See Also
setLocalZOrder(int)
Returns
The local (relative to its siblings) Z order.
virtual AffineTransform
getNodeToParentAffineTransform
( ) const
virtual
virtual const kmMat4&
getNodeToParentTransform
( ) const
virtual

Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.

The matrix is in Pixels.

Reimplemented in Armature, and PhysicsSprite.

virtual AffineTransform
getNodeToWorldAffineTransform
( ) const
virtual
virtual kmMat4
getNodeToWorldTransform
( ) const
virtual

Returns the world affine transform matrix.

The matrix is in Pixels.

Reimplemented in Bone, and Skin.

ssize_t getNumberOfRunningActions ( ) const

Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays).

Composable actions are counted as 1 action. Example: If you are running 1 Sequence of 7 actions, it will return 1. If you are running 7 Sequences of 2 actions, it will return 7.

Todo:
Rename to getNumberOfRunningActions()
Returns
The number of actions that are running plus the ones that are schedule to run
virtual GLubyte getOpacity ( ) const
virtual
int getOrderOfArrival ( ) const

Returns the arrival order, indicates which children is added previously.

See Also
setOrderOfArrival(unsigned int)
Returns
The arrival order.
virtual Node* getParent ( )
inlinevirtual

Returns a pointer to the parent node.

See Also
setParent(Node*)
Returns
A pointer to the parent node
virtual const Node* getParent ( ) const
inlinevirtual
virtual AffineTransform
getParentToNodeAffineTransform
( ) const
virtual
virtual const kmMat4&
getParentToNodeTransform
( ) const
virtual

Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates.

The matrix is in Pixels.

PhysicsBody* getPhysicsBody ( ) const

get the PhysicsBody the sprite have

virtual const Point& getPosition ( ) const
virtual

Gets the position (x,y) of the node in its parent's coordinate system.

See Also
setPosition(const Point&)
Returns
The position (x,y) of the node in OpenGL coordinates
In js and lua return value is table which contains x,y

Reimplemented in PhysicsSprite, and MotionStreak.

virtual void getPosition ( float *  x,
float *  y 
) const
virtual

Gets position in a more efficient way, returns two number instead of a Point object.

See Also
setPosition(float, float) In js,out value not return

Reimplemented in PhysicsSprite, and MotionStreak.

virtual Vertex3F getPosition3D ( ) const
virtual

returns the position (X,Y,Z) in its parent's coordinate system

virtual float getPositionX ( void  ) const
virtual

Reimplemented in PhysicsSprite, and MotionStreak.

virtual float getPositionY ( void  ) const
virtual

Reimplemented in PhysicsSprite, and MotionStreak.

virtual float getPositionZ ( ) const
virtual

Gets position Z coordinate of this node.

See Also
setPositionZ(float)
Returns
the position Z coordinate of this node.
virtual float getRotation ( ) const
virtual

Returns the rotation of the node in degrees.

See Also
setRotation(float)
Returns
The rotation of the node in degrees.

Reimplemented in PhysicsSprite.

virtual Vertex3F getRotation3D ( ) const
virtual

returns the rotation (X,Y,Z) in degrees.

virtual float getRotationSkewX ( ) const
virtual

Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew.

See Also
setRotationSkewX(float)
Returns
The X rotation in degrees.
virtual float getRotationSkewY ( ) const
virtual

Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.

See Also
setRotationSkewY(float)
Returns
The Y rotation in degrees.
virtual
CC_DEPRECATED_ATTRIBUTE float
getRotationX
( ) const
inlinevirtual
virtual
CC_DEPRECATED_ATTRIBUTE float
getRotationY
( ) const
inlinevirtual
virtual float getScale ( ) const
virtual

Gets the scale factor of the node, when X and Y have the same scale factor.

Warning
Assert when _scaleX != _scaleY
See Also
setScale(float)
Returns
The scale factor of the node.
virtual float getScaleX ( ) const
virtual

Returns the scale factor on X axis of this node.

See Also
setScaleX(float)
Returns
The scale factor on X axis.

Reimplemented in Label.

virtual float getScaleY ( ) const
virtual

Returns the scale factor on Y axis of this node.

See Also
setScaleY(float)
Returns
The scale factor on Y axis.

Reimplemented in Label.

virtual float getScaleZ ( ) const
virtual

Returns the scale factor on Z axis of this node.

See Also
setScaleZ(float)
Returns
The scale factor on Z axis.
virtual Scene* getScene ( )
virtual

Returns the Scene that contains the Node.

It returns nullptr if the node doesn't belong to any Scene. This function recursively calls parent->getScene() until parent is a Scene object. The results are not cached. It is that the user caches the results in case this functions is being used inside a loop.

Reimplemented in Scene.

virtual Scheduler* getScheduler ( )
inlinevirtual

Gets a Sheduler object.

See Also
setScheduler(Scheduler*)
Returns
A Scheduler object.
virtual const Scheduler*
getScheduler
( ) const
inlinevirtual
virtual GLProgram* getShaderProgram ( )
inlinevirtual

Return the shader program currently used for this node.

Returns
The shader program currently used for this node
virtual const GLProgram*
getShaderProgram
( ) const
inlinevirtual
virtual float getSkewX ( ) const
virtual

Returns the X skew angle of the node in degrees.

See Also
setSkewX(float)
Returns
The X skew angle of the node in degrees.
virtual float getSkewY ( ) const
virtual

Returns the Y skew angle of the node in degrees.

See Also
setSkewY(float)
Returns
The Y skew angle of the node in degrees.
virtual int getTag ( ) const
virtual

Returns a tag that is used to identify the node easily.

Returns
An integer that identifies the node.
virtual void* getUserData ( )
inlinevirtual

Returns a custom user data pointer.

You can set everything in UserData pointer, a data block, a structure or an object.

Returns
A custom user data pointer
virtual const void* getUserData ( ) const
inlinevirtual
virtual Ref* getUserObject ( )
inlinevirtual

Returns a user assigned Object.

Similar to userData, but instead of holding a void* it holds an object

Returns
A user assigned Object
virtual const Ref* getUserObject ( ) const
inlinevirtual
virtual
CC_DEPRECATED_ATTRIBUTE float
getVertexZ
( ) const
inlinevirtual
virtual AffineTransform
getWorldToNodeAffineTransform
( ) const
virtual
virtual kmMat4
getWorldToNodeTransform
( ) const
virtual

Returns the inverse world affine transform matrix.

The matrix is in Pixels.

virtual
CC_DEPRECATED_ATTRIBUTE int
getZOrder
( ) const
inlinevirtual
virtual void
ignoreAnchorPointForPosition
( bool  ignore)
virtual

Sets whether the anchor point will be (0,0) when you position this node.

This is an internal method, only used by Layer and Scene. Don't call it outside framework. The default value is false, while in Layer and Scene are true

Parameters
ignoretrue if anchor point will be (0,0) when you position this node
Todo:
This method should be renamed as setIgnoreAnchorPointForPosition(bool) or something with "set"

Reimplemented in Sprite.

void insertChild ( Node child,
int  z 
)
protected

helper that reorder a child

virtual bool isCascadeColorEnabled ( ) const
virtual

Reimplemented in __NodeRGBA, and __LayerRGBA.

virtual bool
isCascadeOpacityEnabled
( ) const
virtual

Reimplemented in __NodeRGBA, and __LayerRGBA.

virtual bool
isIgnoreAnchorPointForPosition
( ) const
virtual

Gets whether the anchor point will be (0,0) when you position this node.

See Also
ignoreAnchorPointForPosition(bool)
Returns
true if the anchor point will be (0,0) when you position this node.
virtual bool isOpacityModifyRGB ( void  ) const
inlinevirtual
virtual bool isRunning ( ) const
virtual

Returns whether or not the node is "running".

If the node is running it will accept event callbacks like onEnter(), onExit(), update()

Returns
Whether or not the node is running.
bool isScheduled ( SEL_SCHEDULE  selector)

Checks whether a selector is scheduled.

Parameters
selectorA function selector
Returns
Whether the funcion selector is scheduled.
virtual bool isVisible ( ) const
virtual

Determines if the node is visible.

See Also
setVisible(bool)
Returns
true if the node is visible, false if the node is hidden.
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform
nodeToParentTransform
( ) const
inlinevirtual
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform
nodeToWorldTransform
( ) const
inlinevirtual
CC_DEPRECATED_ATTRIBUTE
ssize_t numberOfRunningActions
( ) const
inline
virtual void onEnter ( )
virtual

Event callback that is invoked every time when Node enters the 'stage'.

If the Node enters the 'stage' with a transition, this event is called when the transition starts. During onEnter you can't access a "sister/brother" node. If you override onEnter, you shall call its parent's one, e.g., Node::onEnter().

Reimplemented in TransitionFadeTR, TransitionSplitCols, TransitionTurnOffTiles, TransitionCrossFade, TransitionFade, TransitionZoomFlipAngular, TransitionZoomFlipY, Widget, TransitionZoomFlipX, TransitionFlipAngular, TransitionFlipY, TransitionFlipX, TransitionShrinkGrow, EditBox, ParticleSystem, ScrollView, TransitionSlideInL, Layout, TransitionMoveInL, TransitionJumpZoom, PageView, Armature, TextField, TransitionRotoZoom, Menu, ProtectedNode, TransitionScene, TransitionPageTurn, ClippingNode, Skeleton, TransitionProgress, and UICCTextField.

virtual void
onEnterTransitionDidFinish
( )
virtual

Event callback that is invoked when the Node enters in the 'stage'.

If the Node enters the 'stage' with a transition, this event is called when the transition finishes. If you override onEnterTransitionDidFinish, you shall call its parent's one, e.g. Node::onEnterTransitionDidFinish()

Reimplemented in ProtectedNode, and ClippingNode.

virtual void onExit ( )
virtual

Event callback that is invoked every time the Node leaves the 'stage'.

If the Node leaves the 'stage' with a transition, this event is called when the transition finishes. During onExit you can't access a sibling node. If you override onExit, you shall call its parent's one, e.g., Node::onExit().

Reimplemented in TransitionFadeTR, TransitionSplitCols, TransitionTurnOffTiles, TransitionCrossFade, TransitionFade, Widget, EditBox, ParticleSystem, Layout, Armature, ProtectedNode, Menu, ClippingNode, TransitionScene, TransitionPageTurn, Skeleton, and TransitionProgress.

virtual void
onExitTransitionDidStart
( )
virtual

Event callback that is called every time the Node leaves the 'stage'.

If the Node leaves the 'stage' with a transition, this callback is called when the transition starts.

Reimplemented in ProtectedNode, and ClippingNode.

virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform
parentToNodeTransform
( ) const
inlinevirtual
void pause ( void  )

Pauses all scheduled selectors, actions and event listeners.

This method is called internally by onExit

CC_DEPRECATED_ATTRIBUTE void
pauseSchedulerAndActions
( void  )

Pauses all scheduled selectors, actions and event listeners.

This method is called internally by onExit

virtual void removeAllChildren ( )
virtual

Removes all children from the container with a cleanup.

See Also
removeAllChildrenWithCleanup(bool)

Reimplemented in ScrollView, Layout, ListView, and PageView.

virtual void
removeAllChildrenWithCleanup
( bool  cleanup)
virtual

Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter.

Parameters
cleanuptrue if all running actions on all children nodes should be cleanup, false oterwise.

Reimplemented in Sprite, ScrollView, Layout, ListView, PageView, SpriteBatchNode, ParticleBatchNode, and ParallaxNode.

virtual void removeAllComponents ( )
virtual

removes all components

virtual void removeChild ( Node child,
bool  cleanup = true 
)
virtual

Removes a child from the container.

It will also cleanup all running actions depending on the cleanup parameter.

Parameters
childThe child node which will be removed.
cleanuptrue if all running actions and callbacks on the child node will be cleanup, false otherwise.

Reimplemented in Sprite, ScrollView, Layout, TMXLayer, ListView, PageView, SpriteBatchNode, Menu, ParticleBatchNode, ParallaxNode, and BatchNode.

virtual void removeChildByTag ( int  tag,
bool  cleanup = true 
)
virtual

Removes a child from the container by tag value.

It will also cleanup all running actions depending on the cleanup parameter

Parameters
tagAn interger number that identifies a child node
cleanuptrue if all running actions and callbacks on the child node will be cleanup, false otherwise.
virtual bool removeComponent ( const std::string &  pName)
virtual

removes a component by its name

virtual void removeFromParent ( )
virtual

Removes this node itself from its parent node with a cleanup.

If the node orphan, then nothing happens.

See Also
removeFromParentAndCleanup(bool)
virtual void
removeFromParentAndCleanup
( bool  cleanup)
virtual

Removes this node itself from its parent node.

If the node orphan, then nothing happens.

Parameters
cleanuptrue if all actions and callbacks on this node should be removed, false otherwise.
virtual void reorderChild ( Node child,
int  localZOrder 
)
virtual

Reorders a child according to a new z value.

Parameters
childAn already added child node. It MUST be already added.
localZOrderZ order for drawing priority. Please refer to setLocalZOrder(int)

Reimplemented in Sprite, SpriteBatchNode, and ParticleBatchNode.

void resume ( void  )

Resumes all scheduled selectors, actions and event listeners.

This method is called internally by onEnter

CC_DEPRECATED_ATTRIBUTE void
resumeSchedulerAndActions
( void  )

Resumes all scheduled selectors, actions and event listeners.

This method is called internally by onEnter

Action* runAction ( Action action)

Executes an action, and returns the action that is executed.

This node becomes the action's target. Refer to Action::getTarget()

Warning
Actions don't retain their target.
Returns
An Action pointer
void schedule ( SEL_SCHEDULE  selector,
float  interval,
unsigned int  repeat,
float  delay 
)

Schedules a custom selector.

If the selector is already scheduled, then the interval parameter will be updated without scheduling it again.

// firstly, implement a schedule function
void MyNode::TickMe(float dt);
// wrap this function into a selector via schedule_selector marco.
this->schedule(schedule_selector(MyNode::TickMe), 0, 0, 0);
Parameters
selectorThe SEL_SCHEDULE selector to be scheduled.
intervalTick interval in seconds. 0 means tick every frame. If interval = 0, it's recommended to use scheduleUpdate() instead.
repeatThe selector will be excuted (repeat + 1) times, you can use kRepeatForever for tick infinitely.
delayThe amount of time that the first tick will wait before execution.
void schedule ( SEL_SCHEDULE  selector,
float  interval 
)

Schedules a custom selector with an interval time in seconds.

See Also
schedule(SEL_SCHEDULE, float, unsigned int, float)
Parameters
selectorThe SEL_SCHEDULE selector to be scheduled.
intervalCallback interval time in seconds. 0 means tick every frame,
void schedule ( SEL_SCHEDULE  selector)

Schedules a custom selector, the scheduled selector will be ticked every frame.

See Also
schedule(SEL_SCHEDULE, float, unsigned int, float)
Parameters
selectorA function wrapped as a selector
void scheduleOnce ( SEL_SCHEDULE  selector,
float  delay 
)

Schedules a selector that runs only once, with a delay of 0 or larger.

See Also
schedule(SEL_SCHEDULE, float, unsigned int, float)
Parameters
selectorThe SEL_SCHEDULE selector to be scheduled.
delayThe amount of time that the first tick will wait before execution.
void scheduleUpdate ( void  )

Schedules the "update" method.

It will use the order number 0. This method will be called every frame. Scheduled methods with a lower order value will be called before the ones that have a higher order value. Only one "update" method could be scheduled per node.

void scheduleUpdateWithPriority ( int  priority)

Schedules the "update" method with a custom priority.

This selector will be called every frame. Scheduled methods with a lower priority will be called before the ones that have a higher value. Only one "update" selector could be scheduled per node (You can't have 2 'update' selectors).

void scheduleUpdateWithPriorityLua ( int  handler,
int  priority 
)

Schedules for lua script.

virtual void setActionManager ( ActionManager actionManager)
virtual

Sets the ActionManager object that is used by all actions.

Warning
If you set a new ActionManager, then previously created actions will be removed.
Parameters
actionManagerA ActionManager object that is used by all actions.
void setAdditionalTransform ( kmMat4 *  additionalTransform)

Sets an additional transform matrix to the node.

In order to remove it, call it again with the argument nullptr

Note
The additional transform will be concatenated at the end of getNodeToParentTransform. It could be used to simulate parent-child relationship between two nodes (e.g. one is in BatchNode, another isn't).
void setAdditionalTransform ( const AffineTransform additionalTransform)
virtual void setAnchorPoint ( const Point anchorPoint)
virtual

Sets the anchor point in percent.

anchorPoint is the point around which all transformations and positioning manipulations take place. It's like a pin in the node where it is "attached" to its parent. The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner. But you can use values higher than (1,1) and lower than (0,0) too. The default anchorPoint is (0.5,0.5), so it starts in the center of the node.

Note
If node has a physics body, the anchor must be in the middle, you cann't change this to other value.
Parameters
anchorPointThe anchor point of node.

Reimplemented in Sprite, EditBox, Armature, ProgressTimer, and RichText.

virtual void setCascadeColorEnabled ( bool  cascadeColorEnabled)
virtual

Reimplemented in __NodeRGBA, and __LayerRGBA.

virtual void
setCascadeOpacityEnabled
( bool  cascadeOpacityEnabled)
virtual

Reimplemented in __NodeRGBA, and __LayerRGBA.

virtual void setColor ( const Color3B color)
virtual
virtual void setContentSize ( const Size contentSize)
virtual

Sets the untransformed size of the node.

The contentSize remains the same no matter the node is scaled or rotated. All nodes has a size. Layer and Scene has the same size of the screen.

Parameters
contentSizeThe untransformed size of the node.

Reimplemented in EditBox, LayerColor, Scale9Sprite, and ScrollView.

virtual void setEventDispatcher ( EventDispatcher dispatcher)
virtual
virtual void setGlobalZOrder ( float  globalZOrder)
virtual

Defines the oder in which the nodes are renderer.

Nodes that have a Global Z Order lower, are renderer first.

In case two or more nodes have the same Global Z Order, the oder is not guaranteed. The only exception if the Nodes have a Global Z Order == 0. In that case, the Scene Graph order is used.

By default, all nodes have a Global Z Order = 0. That means that by default, the Scene Graph order is used to render the nodes.

Global Z Order is useful when you need to render nodes in an order different than the Scene Graph order.

Limitations: Global Z Order can't be used used by Nodes that have SpriteBatchNode as one of their acenstors. And if ClippingNode is one of the ancestors, then "global Z order" will be relative to the ClippingNode.

See Also
setLocalZOrder()
setVertexZ()
Since
v3.0
CC_DEPRECATED_ATTRIBUTE void
setGLServerState
( int  serverState)
inline
Deprecated:
No longer needed
virtual void setLocalZOrder ( int  localZOrder)
virtual

LocalZOrder is the 'key' used to sort the node relative to its siblings.

The Node's parent will sort all its children based ont the LocalZOrder value. If two nodes have the same LocalZOrder, then the node that was added first to the children's array will be in front of the other node in the array.

Also, the Scene Graph is traversed using the "In-Order" tree traversal algorithm ( http://en.wikipedia.org/wiki/Tree_traversal#In-order ) And Nodes that have LocalZOder values < 0 are the "left" subtree While Nodes with LocalZOder >=0 are the "right" subtree.

See Also
setGlobalZOrder
setVertexZ

Reimplemented in Bone.

virtual void
setNodeToParentTransform
( const kmMat4 &  transform)
virtual

Sets the Transformation matrix manually.

virtual void setOpacity ( GLubyte  opacity)
virtual
virtual void setOpacityModifyRGB ( bool  bValue)
inlinevirtual
void setOrderOfArrival ( int  orderOfArrival)

Sets the arrival order when this node has a same ZOrder with other children.

A node which called addChild subsequently will take a larger arrival order, If two children have the same Z order, the child with larger arrival order will be drawn later.

Warning
This method is used internally for localZOrder sorting, don't change this manually
Parameters
orderOfArrivalThe arrival order.
virtual void setParent ( Node parent)
virtual

Sets the parent node.

Parameters
parentA pointer to the parent node
void setPhysicsBody ( PhysicsBody *  body)

set the PhysicsBody that let the sprite effect with physics

Note
This method will set anchor point to Point::ANCHOR_MIDDLE if body not null, and you cann't change anchor point if node has a physics body.
virtual void setPosition ( const Point position)
virtual

Sets the position (x,y) of the node in its parent's coordinate system.

Usually we use Point(x,y) to compose Point object. This code snippet sets the node in the center of screen.

node->setPosition( Point(size.width/2, size.height/2) )
Parameters
positionThe position (x,y) of the node in OpenGL coordinates

Reimplemented in Sprite, EditBox, Widget, PhysicsSprite, and MotionStreak.

virtual void setPosition ( float  x,
float  y 
)
virtual

Sets the position (x,y) of the node in its parent's coordinate system.

Passing two numbers (x,y) is much efficient than passing Point object. This method is bound to Lua and JavaScript. Passing a number is 10 times faster than passing a object from Lua to c++

// sample code in Lua
local pos = node::getPosition() -- returns Point object from C++
node:setPosition(x, y) -- pass x, y coordinate to C++
Parameters
xX coordinate for position
yY coordinate for position

Reimplemented in Sprite, and MotionStreak.

virtual void setPosition3D ( const Vertex3F position)
virtual

Sets the position (X, Y, and Z) in its parent's coordinate system.

virtual void setPositionX ( float  x)
virtual

Gets/Sets x or y coordinate individually for position.

These methods are used in Lua and Javascript Bindings

Reimplemented in MotionStreak.

virtual void setPositionY ( float  y)
virtual

Reimplemented in MotionStreak.

virtual void setPositionZ ( float  positionZ)
virtual

Sets the 'z' coordinate in the position.

It is the OpenGL Z vertex value.

The OpenGL depth buffer and depth testing are disabled by default. You need to turn them on in order to use this property correctly.

setPositionZ() also sets the setGlobalZValue() with the positionZ as value.

See Also
setGlobalZValue()
Parameters
vertexZOpenGL Z vertex of this node.

Reimplemented in Sprite.

virtual void setRotation ( float  rotation)
virtual

Sets the rotation (angle) of the node in degrees.

0 is the default rotation angle. Positive values rotate node clockwise, and negative values for anti-clockwise.

Parameters
rotationThe rotation of the node in degrees.

Reimplemented in Sprite, ParticleSystem, and PhysicsSprite.

virtual void setRotation3D ( const Vertex3F rotation)
virtual

Sets the rotation (X,Y,Z) in degrees.

Useful for 3d rotations

virtual void setRotationSkewX ( float  rotationX)
virtual

Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew.

The difference between setRotationalSkew() and setSkew() is that the first one simulate Flash's skew functionality while the second one uses the real skew function.

0 is the default rotation angle. Positive values rotate node clockwise, and negative values for anti-clockwise.

Parameters
rotationXThe X rotation in degrees which performs a horizontal rotational skew.

Reimplemented in Sprite.

virtual void setRotationSkewY ( float  rotationY)
virtual

Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.

The difference between setRotationalSkew() and setSkew() is that the first one simulate Flash's skew functionality while the second one uses the real skew function.

0 is the default rotation angle. Positive values rotate node clockwise, and negative values for anti-clockwise.

Parameters
rotationYThe Y rotation in degrees.

Reimplemented in Sprite.

virtual
CC_DEPRECATED_ATTRIBUTE void
setRotationX
( float  rotationX)
inlinevirtual
virtual
CC_DEPRECATED_ATTRIBUTE void
setRotationY
( float  rotationY)
inlinevirtual
virtual void setScale ( float  scale)
virtual

Sets the scale (x,y,z) of the node.

It is a scaling factor that multiplies the width, height and depth of the node and its children.

Parameters
scaleThe scale factor for both X and Y axis.

Reimplemented in Sprite, ParticleSystem, and Label.

virtual void setScale ( float  scaleX,
float  scaleY 
)
virtual

Sets the scale (x,y) of the node.

It is a scaling factor that multiplies the width and height of the node and its children.

Parameters
scaleXThe scale factor on X axis.
scaleYThe scale factor on Y axis.

Reimplemented in Sprite.

virtual void setScaleX ( float  scaleX)
virtual

Sets the scale (x) of the node.

It is a scaling factor that multiplies the width of the node and its children.

Parameters
scaleXThe scale factor on X axis.

Reimplemented in Sprite, ParticleSystem, and Label.

virtual void setScaleY ( float  scaleY)
virtual

Sets the scale (y) of the node.

It is a scaling factor that multiplies the height of the node and its children.

Parameters
scaleYThe scale factor on Y axis.

Reimplemented in Sprite, ParticleSystem, and Label.

virtual void setScaleZ ( float  scaleZ)
virtual

Changes the scale factor on Z axis of this node.

The Default value is 1.0 if you haven't changed it before.

Parameters
scaleYThe scale factor on Y axis.
virtual void setScheduler ( Scheduler scheduler)
virtual

Sets a Scheduler object that is used to schedule all "updates" and timers.

Warning
If you set a new Scheduler, then previously created timers/update are going to be removed.
Parameters
schedulerA Shdeduler object that is used to schedule all "update" and timers.
virtual void setShaderProgram ( GLProgram shaderProgram)
virtual

Sets the shader program for this node.

Since v2.0, each rendering node must set its shader program. It should be set in initialize phase.

Parameters
shaderProgramThe shader program
virtual void setSkewX ( float  skewX)
virtual

Changes the X skew angle of the node in degrees.

The difference between setRotationalSkew() and setSkew() is that the first one simulate Flash's skew functionality while the second one uses the real skew function.

This angle describes the shear distortion in the X direction. Thus, it is the angle between the Y coordinate and the left edge of the shape The default skewX angle is 0. Positive values distort the node in a CW direction.

Parameters
skewXThe X skew angle of the node in degrees.

Reimplemented in Sprite.

virtual void setSkewY ( float  skewY)
virtual

Changes the Y skew angle of the node in degrees.

The difference between setRotationalSkew() and setSkew() is that the first one simulate Flash's skew functionality while the second one uses the real skew function.

This angle describes the shear distortion in the Y direction. Thus, it is the angle between the X coordinate and the bottom edge of the shape The default skewY angle is 0. Positive values distort the node in a CCW direction.

Parameters
skewYThe Y skew angle of the node in degrees.

Reimplemented in Sprite.

virtual void setTag ( int  tag)
virtual

Changes the tag that is used to identify the node easily.

Please refer to getTag for the sample code.

Parameters
tagA integer that identifies the node.
virtual void setUserData ( void *  userData)
virtual

Sets a custom user data pointer.

You can set everything in UserData pointer, a data block, a structure or an object, etc.

Warning
Don't forget to release the memory manually, especially before you change this data pointer, and before this node is autoreleased.
Parameters
userDataA custom user data pointer
virtual void setUserObject ( Ref userObject)
virtual

Returns a user assigned Object.

Similar to UserData, but instead of holding a void* it holds an object. The UserObject will be retained once in this method, and the previous UserObject (if existed) will be released. The UserObject will be released in Node's destructor.

Parameters
userObjectA user assigned Object
virtual
CC_DEPRECATED_ATTRIBUTE void
setVertexZ
( float  vertexZ)
inlinevirtual
virtual void setVisible ( bool  visible)
virtual

Sets whether the node is visible.

The default value is true, a node is default to visible

Parameters
visibletrue if the node is visible, false if the node is hidden.

Reimplemented in Sprite, and EditBox.

virtual
CC_DEPRECATED_ATTRIBUTE void
setZOrder
( int  localZOrder)
inlinevirtual
virtual void sortAllChildren ( )
virtual

Sorts the children array once before drawing, instead of every time when a child is added or reordered.

This appraoch can improves the performance massively.

Note
Don't call this manually unless a child added needs to be removed in the same frame

Reimplemented in Sprite, Layout, Label, ListView, and SpriteBatchNode.

void stopAction ( Action action)

Stops and removes an action from the running action list.

Parameters
actionThe action object to be removed.
void stopActionByTag ( int  tag)

Removes an action from the running action list by its tag.

Parameters
tagA tag that indicates the action to be removed.
void stopAllActions ( )

Stops and removes all actions from the running action list .

kmMat4 transform ( const kmMat4 &  parentTransform)
protected
void unschedule ( SEL_SCHEDULE  selector)

Unschedules a custom selector.

See Also
schedule(SEL_SCHEDULE, float, unsigned int, float)
Parameters
selectorA function wrapped as a selector
void unscheduleAllSelectors ( void  )

Unschedule all scheduled selectors: custom selectors, and the 'update' selector.

Actions are not affected by this method.

void unscheduleUpdate ( void  )
virtual void update ( float  delta)
virtual
virtual void updateCascadeColor ( )
protectedvirtual
virtual void updateCascadeOpacity ( )
protectedvirtual
virtual void updateColor ( void  )
inlineprotectedvirtual
virtual void updateDisplayedColor ( const Color3B parentColor)
virtual
virtual void updateDisplayedOpacity ( GLubyte  parentOpacity)
virtual
virtual void updateTransform ( )
virtual

Calls children's updateTransform() method recursively.

This method is moved from Sprite, so it's no longer specific to Sprite. As the result, you apply SpriteBatchNode's optimization on your customed Node. e.g., batchNode->addChild(myCustomNode), while you can only addChild(sprite) before.

Reimplemented in Sprite, and Skin.

virtual void visit ( Renderer renderer,
const kmMat4 &  parentTransform,
bool  parentTransformUpdated 
)
virtual
virtual void visit ( )
finalvirtual
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform
worldToNodeTransform
( ) const
inlinevirtual

Member Data Documentation

ActionManager* _actionManager
protected

a pointer to ActionManager singleton, which is used to handle all the actions

kmMat4 _additionalTransform
mutableprotected

transform

Point _anchorPoint
protected

anchor point normalized (NOT in points)

Point _anchorPointInPoints
protected

anchor point in points

bool _cascadeColorEnabled
protected
bool _cascadeOpacityEnabled
protected
Vector<Node*> _children
protected

array of children nodes

ComponentContainer*
_componentContainer
protected

Dictionary of components.

Size _contentSize
protected

untransformed size of the node

Color3B _displayedColor
protected
GLubyte _displayedOpacity
protected
EventDispatcher* _eventDispatcher
protected

event dispatcher used to dispatch all kinds of events

float _globalZOrder
protected

Global order used to sort the node.

bool _ignoreAnchorPointForPosition
protected

true if the Anchor Point will be (0,0) when you position the Node, false otherwise.

Used by Layer and Scene.

kmMat4 _inverse
mutableprotected

inverse transform

bool _inverseDirty
mutableprotected

inverse transform dirty flag

bool _isTransitionFinished
protected

flag to indicate whether the transition was finished

int _localZOrder
protected

Local order (relative to its siblings) used to sort the node.

kmMat4 _modelViewTransform
protected

ModelView transform of the Node.

std::string _name
protected

a string label, an user defined string to identify this node

int _orderOfArrival
protected

used to preserve sequence while sorting children with the same localZOrder

Node* _parent
protected

weak reference to parent node

PhysicsBody* _physicsBody
protected

the physicsBody the node have

Point _position
protected

position of the node

float _positionZ
protected

OpenGL real Z position.

Color3B _realColor
protected
GLubyte _realOpacity
protected
bool _reorderChildDirty
protected

children order dirty flag

float _rotationX
protected

rotation on the X-axis

float _rotationY
protected

rotation on the Y-axis

float _rotationZ_X
protected

rotation angle on Z-axis, component X

float _rotationZ_Y
protected

rotation angle on Z-axis, component Y

bool _running
protected

is running

float _scaleX
protected

scaling factor on x-axis

float _scaleY
protected

scaling factor on y-axis

float _scaleZ
protected

scaling factor on z-axis

Scheduler* _scheduler
protected

scheduler used to schedule timers and updates

int _scriptHandler
protected

script handler for onEnter() & onExit(), used in Javascript binding and Lua binding.

ccScriptType _scriptType
protected

type of script binding, lua or javascript

GLProgram* _shaderProgram
protected

OpenGL shader.

float _skewX
protected

skew angle on x-axis

float _skewY
protected

skew angle on y-axis

int _tag
protected

a tag. Can be any number you assigned just to identify this node

kmMat4 _transform
mutableprotected

transform

bool _transformDirty
mutableprotected

transform dirty flag

bool _transformUpdated
protected

Whether or not the Transform object was updated since the last frame.

int _updateScriptHandler
protected

script handler for update() callback per frame, which is invoked from lua & javascript.

bool _useAdditionalTransform
protected

The flag to check whether the additional transform is dirty.

void* _userData
protected

A user assingned void pointer, Can be point to any cpp object.

Ref* _userObject
protected

A user assigned Object.

bool _visible
protected

is this node visible

const int INVALID_TAG = -1
static

Default tag used for all the nodes.

int s_globalOrderOfArrival
staticprotected

The documentation for this class was generated from the following file: