Axmol 3.0.0-89d6d9a
Loading...
Searching...
No Matches
DrawNode Class Reference

Node that draws dots, segments and polygons. More...

#include <DrawNode.h>

Inherits Node.

Public Types

enum class  DrawMode
 Different draw modus types. More...

Public Member Functions

void drawPoint (const Vec2 &point, const float pointSize, const Color &color, DrawNode::PointStyle pointType=DrawNode::PointStyle::Rect)
 Draw a point.
void drawPoints (const Vec2 *position, unsigned int numberOfPoints, const Color &color, DrawNode::PointStyle pointType=DrawNode::PointStyle::Rect)
 Draw a group point.
void drawPoints (const Vec2 *position, unsigned int numberOfPoints, const float pointSize, const Color &color, DrawNode::PointStyle pointType=DrawNode::PointStyle::Rect)
 Draw a group point.
void drawLine (const Vec2 &origin, const Vec2 &destination, const Color &color, float thickness=1.0f, DrawNode::EndStyle etStart=DrawNode::EndStyle::Round, DrawNode::EndStyle etEnd=DrawNode::EndStyle::Round)
 Draw an line from origin to destination with color.
void drawRect (const Vec2 &origin, const Vec2 &destination, const Color &color, float thickness=1.0f)
 Draws a rectangle given the origin and destination point measured in points.
void drawPoly (const Vec2 *poli, unsigned int numberOfPoints, bool closedPolygon, const Color &color, float thickness=1.0f)
 Draws a polygon given a pointer to point coordinates and the number of vertices measured in points.
void drawCircle (const Vec2 &center, float radius, float angle, unsigned int segments, bool drawLineToCenter, float scaleX, float scaleY, const Color &color, float thickness=1.0f)
 Draws a circle given the center, radius and number of segments.
void drawCircle (const Vec2 &center, float radius, float angle, unsigned int segments, bool drawLineToCenter, const Color &color, float thickness=1.0f)
 Draws a circle given the center, radius and number of segments.
void drawCircle (const Vec2 &center, float radius, const Color &color, float thickness=1.0f)
 Draws a (fast) circle given the center, radius.
void drawStar (const Vec2 &center, float radiusI, float radiusO, unsigned int segments, const Color &color, float thickness=1.0f)
 Draws a star given the center, radiusI, radiusO and number of segments.
void drawSolidStar (const Vec2 &center, float radiusI, float radiusO, unsigned int segments, const Color &color, const Color &filledColor, float thickness=1.0f)
 Draws a solid star given the center, radiusI, radiusO and number of segments.
void drawQuadBezier (const Vec2 &origin, const Vec2 &control, const Vec2 &destination, unsigned int segments, const Color &color, float thickness=1.0f)
 Draws a quad bezier path.
void drawCubicBezier (const Vec2 &origin, const Vec2 &control1, const Vec2 &control2, const Vec2 &destination, unsigned int segments, const Color &color, float thickness=1.0f)
 Draw a cubic bezier curve with color and number of segments.
void drawCardinalSpline (const PointArray *configIn, float tension, unsigned int segments, const Color &color, float thickness=1.0f, bool closed=false)
 Draws a Cardinal Spline path.
void drawCatmullRom (const PointArray *pointsIn, unsigned int segments, const Color &color, float thickness=1.0f, bool closed=false)
 Draws a Catmull Rom path.
void drawDot (const Vec2 &pos, float radius, const Color &color)
 draw a dot at a position, with a given radius and color.
void drawRect (const Vec2 &p1, const Vec2 &p2, const Vec2 &p3, const Vec2 &p4, const Color &color, float thickness=1.0f)
 Draws a rectangle with 4 points.
void drawCornerRect (const Vec2 &origin, const Vec2 &destination, const Color &color, float thickness=1.0f, float crLB=5.0f, float crLT=5.0f, float crRT=5.0f, float crRB=5.0f, CornerMode mode=CornerMode::Round)
 Draws a rectangle with 4 rounded corners.
void drawSolidCornerRect (const Vec2 &origin, const Vec2 &destination, const Color &fillColor, const Color &borderColor, float thickness=1.0f, float crLB=5.0f, float crLT=5.0f, float crRT=5.0f, float crRB=5.0f, CornerMode mode=CornerMode::Round)
 Draws a solid rectangle with 4 rounded corners.
void drawSolidRect (const Vec2 &origin, const Vec2 &destination, const Color &color, float thickness=0, const Color &borderColor=Color(0, 0, 0, 0))
 Draws a solid rectangle given the origin and destination point measured in points.
void drawSolidPoly (const Vec2 *poli, unsigned int numberOfPoints, const Color &color, float thickness=0, const Color &borderColor=Color(0, 0, 0, 0), bool isconvex=false)
 Draws a solid polygon given a pointer to CGPoint coordinates, the number of vertices measured in points, and a color.
void drawSolidCircle (const Vec2 &center, float radius, float angle, unsigned int segments, float scaleX, float scaleY, const Color &fillColor, float thickness, const Color &borderColor, bool drawLineToCenter=false)
 Draws a solid circle given the center, radius and number of segments.
void drawSolidCircle (const Vec2 &center, float radius, float angle, unsigned int segments, float scaleX, float scaleY, const Color &color)
 Draws a solid circle given the center, radius and number of segments.
void drawSolidCircle (const Vec2 &center, float radius, float angle, unsigned int segments, const Color &color)
 Draws a solid circle given the center, radius and number of segments.
void drawPie (const Vec2 &center, float radius, float rotation, int startAngle, int endAngle, float scaleX, float scaleY, const Color &fillColor, const Color &borderColor, DrawMode drawMode=DrawMode::Outline, float thickness=1.0f)
 Draws a pie given the center, radius, angle, start angle, end angle and number of segments.
void drawPie (const Vec2 &center, float radius, float angle, int startAngle, int endAngle, float scaleX, float scaleY, const Color &color, DrawMode drawMode=DrawMode::Outline)
 Draws a pie given the center, radius, angle, start angle, end angle and number of segments.
void drawSegment (const Vec2 &from, const Vec2 &to, float radius, const Color &color, DrawNode::EndStyle etStart=DrawNode::EndStyle::Round, DrawNode::EndStyle etEnd=DrawNode::EndStyle::Round)
 draw a segment with a radius and color.
void drawPolygon (const Vec2 *verts, int count, const Color &fillColor, float thickness, const Color &borderColor, bool isconvex=false)
 draw a polygon with a fill color and line color
void drawColoredTriangle (const Vec2 *vertices3, const Color *color3)
 draw a triangle with color.
virtual void clear ()
 Clear the geometry in the node's buffer.
const BlendFunc & getBlendFunc () const override
 Get the color mixed mode.
void setBlendFunc (const BlendFunc &blendFunc) override
 Set the color mixed mode.
void draw (const SceneRenderState &state, const Mat4 &transform, uint32_t flags) override
 Override this method to draw your own node.
void visit (const SceneRenderState &state, const Mat4 &parentTransform, uint32_t parentFlags) override
 Visits this node's children and draw them recursively.
void setIsolated (bool isolated)
 When isolated is set, the position of the node is no longer affected by parent nodes.
float getThicknessScale () const
 Advanced settings.
Public Member Functions inherited from Node
virtual bool isRunning () const
 Returns whether or not the node is "running".
virtual void cleanup ()
 Stops all running actions and schedulers.
virtual Scene * getScene () const
 Returns the Scene that contains the Node.
virtual Rect getBoundingBox () const
 Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system.
virtual Rect getWorldBoundingBox () const
 Returns an AABB (axis-aligned bounding-box) in its world's coordinate system.
virtual void setEventDispatcher (EventDispatcher *dispatcher)
 Set event dispatcher for scene.
virtual EventDispatcher * getEventDispatcher () const
 Get the event dispatcher of scene.
virtual uint8_t getOpacity () const
 Return the node's opacity.
virtual uint8_t getDisplayedOpacity () const
 Return the node's display opacity.
virtual void setOpacity (uint8_t opacity)
 Change node opacity.
virtual void updateDisplayedOpacity (uint8_t parentOpacity)
 Update the displayed opacity of node with it's parent opacity;.
bool isCascadeOpacityEnabled () const
 Whether cascadeOpacity is enabled or not.
virtual void setCascadeOpacityEnabled (bool cascadeOpacityEnabled)
 Change node's cascadeOpacity property.
virtual const Color32 & getColor () const
 Query node's color value.
virtual const Color32 & getDisplayedColor () const
 Query node's displayed color.
virtual void setColor (const Color32 &color)
 Change the color of node.
virtual void updateDisplayedColor (const Color32 &parentColor)
 Update node's displayed color with its parent color.
bool isCascadeColorEnabled () const
 Query whether cascadeColor is enabled or not.
virtual void setCascadeColorEnabled (bool cascadeColorEnabled)
 Sets whether to enable color cascade.
virtual void setOpacityModifyRGB (bool value)
 If you want the opacity affect the color property, then set to true.
virtual bool isOpacityModifyRGB () const
 If node opacity will modify the RGB color value, then you should override this method and return true.
void setOnEnterCallback (const std::function< void()> &callback)
 Set the callback of event onEnter.
const std::function< void()> & getOnEnterCallback () const
 Get the callback of event onEnter.
void setOnExitCallback (const std::function< void()> &callback)
 Set the callback of event onExit.
const std::function< void()> & getOnExitCallback () const
 Get the callback of event onExit.
void setOnEnterTransitionDidFinishCallback (const std::function< void()> &callback)
 Set the callback of event EnterTransitionDidFinish.
const std::function< void()> & getOnEnterTransitionDidFinishCallback () const
 Get the callback of event EnterTransitionDidFinish.
void setOnExitTransitionDidStartCallback (const std::function< void()> &callback)
 Set the callback of event ExitTransitionDidStart.
const std::function< void()> & getOnExitTransitionDidStartCallback () const
 Get the callback of event ExitTransitionDidStart.
void setOnCleanupCallback (const std::function< void()> &callback)
 Set the callback invoked by cleanup before actions and scheduled callbacks are released.
unsigned short getCameraMask () const
 get & set camera mask, the node is visible by the camera whose camera flag & node's camera mask is true
virtual void setCameraMask (unsigned short mask, bool applyChildren=true)
 Modify the camera mask for current node.
void applyMaskOnEnter (bool applyChildren)
 Should addChild() make the child follow it's parent's mask?
virtual bool setProgramState (rhi::ProgramState *programState, bool ownPS=false)
 Sets ProgramState with retain.
rhi::ProgramState * setProgramStateByProgramId (uint64_t progId)
 Sets ProgramState by programId.
void resetChild (Node *child, bool cleanup)
 Performs pointer hit testing for this node under the specified camera.
virtual void setLocalZOrder (int localZOrder)
 LocalZOrder is the 'key' used to sort the node relative to its siblings.
void updateOrderOfArrival ()
 !
virtual int getLocalZOrder () const
 Gets the local Z order of this node.
virtual void setGlobalZOrder (float globalZOrder)
 Defines the order in which the nodes are renderer.
virtual float getGlobalZOrder () const
 Returns the Node's Global Z Order.
virtual void setScaleX (float scaleX)
 Sets the scale (x) of the node.
virtual float getScaleX () const
 Returns the scale factor on X axis of this node.
virtual void setScaleY (float scaleY)
 Sets the scale (y) of the node.
virtual float getScaleY () const
 Returns the scale factor on Y axis of this node.
virtual void setScaleZ (float scaleZ)
 Changes the scale factor on Z axis of this node.
virtual float getScaleZ () const
 Returns the scale factor on Z axis of this node.
virtual void setScale (float scale)
 Sets the scale (x,y,z) of the node.
virtual float getScale () const
 Gets the scale factor of the node, when X and Y have the same scale factor.
virtual void setScale (float scaleX, float scaleY)
 Sets the scale (x,y) of the node.
virtual void setPosition (const Vec2 &position)
 Sets the position (x,y) of the node in its parent's coordinate system.
virtual void setPositionNormalized (const Vec2 &position)
 Sets the position (x,y) using values between 0 and 1.
virtual const Vec2 & getPosition () const
 Gets the position (x,y) of the node in its parent's coordinate system.
virtual const Vec2 & getPositionNormalized () const
 Returns the normalized position.
virtual void setPosition (float x, float y)
 Sets the position (x,y) of the node in its parent's coordinate system.
virtual void getPosition (float *x, float *y) const
 Gets position in a more efficient way, returns two number instead of a Vec2 object.
virtual void setPositionX (float x)
 Gets/Sets x or y coordinate individually for position.
virtual float getPositionX () const
 Gets the x coordinate of the node in its parent's coordinate system.
virtual void setPositionY (float y)
 Sets the y coordinate of the node in its parent's coordinate system.
virtual float getPositionY () const
 Gets the y coordinate of the node in its parent's coordinate system.
virtual void setPosition3D (const Vec3 &position)
 Sets the position (X, Y, and Z) in its parent's coordinate system.
virtual Vec3 getPosition3D () const
 Returns the position (X,Y,Z) in its parent's coordinate system.
virtual void setPositionZ (float positionZ)
 Sets the 'z' coordinate in the position.
virtual float getPositionZ () const
 Gets position Z coordinate of this node.
virtual void setSkewX (float skewX)
 Changes the X skew angle of the node in degrees.
virtual float getSkewX () const
 Returns the X skew angle of the node in degrees.
virtual void setSkewY (float skewY)
 Changes the Y skew angle of the node in degrees.
virtual float getSkewY () const
 Returns the Y skew angle of the node in degrees.
virtual void setAnchorPoint (const Vec2 &anchorPoint)
 Sets the anchor point in percent.
virtual const Vec2 & getAnchorPoint () const
 Returns the anchor point in percent.
virtual const Vec2 & getAnchorPointInPoints () const
 Returns the anchorPoint in absolute pixels.
virtual void setContentSize (const Vec2 &contentSize)
 Sets the untransformed size of the node.
virtual const Vec2 & getContentSize () const
 Returns the untransformed size of the node.
virtual void setVisible (bool visible)
 Sets whether the node is visible.
virtual bool isVisible () const
 Determines if the node is visible.
virtual void setRotation (float rotation)
 Sets the rotation (angle) of the node in degrees.
virtual float getRotation () const
 Returns the rotation of the node in degrees.
virtual void setRotation3D (const Vec3 &rotation)
 Sets the rotation (X,Y,Z) in degrees.
virtual Vec3 getRotation3D () const
 Returns the rotation (X,Y,Z) in degrees.
virtual void setRotationQuat (const Quat &quat)
 Set rotation by quaternion.
virtual Quat getRotationQuat () const
 Return the rotation by quaternion, Note that when _rotationZ_X == _rotationZ_Y, the returned quaternion equals to RotationZ_X * RotationY * RotationX, it equals to RotationY * RotationX otherwise.
virtual void setRotationSkewX (float rotationX)
 Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew.
virtual float getRotationSkewX () const
 Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew.
virtual void setRotationSkewY (float rotationY)
 Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
virtual float getRotationSkewY () const
 Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
virtual void setIgnoreAnchorPointForPosition (bool ignore)
 Sets whether the anchor point will be (0,0) when you position this node.
virtual bool isIgnoreAnchorPointForPosition () const
 Gets whether the anchor point will be (0,0) when you position this node.
virtual int getTag () const
 Returns a tag that is used to identify the node easily.
virtual void setTag (int tag)
 Changes the tag that is used to identify the node easily.
virtual std::string_view getName () const
 Returns a string that is used to identify the node.
virtual void setName (std::string_view name)
 Changes the name that is used to identify the node easily.
virtual void * getUserData ()
 Returns a custom user data pointer.
virtual const void * getUserData () const
 @lua NA
virtual void setUserData (void *userData)
 Sets a custom user data pointer.
virtual Object * getUserObject ()
 Returns a user assigned Object.
virtual const Object * getUserObject () const
 @lua NA
virtual void setUserObject (Object *userObject)
 Returns a user assigned Object.
virtual void onEnter ()
 Event callback that is invoked every time when Node enters the 'stage'.
virtual void onEnterTransitionDidFinish ()
 Event callback that is invoked when the Node enters in the 'stage'.
virtual void onExit ()
 Event callback that is invoked every time the Node leaves the 'stage'.
virtual void onExitTransitionDidStart ()
 Event callback that is called every time the Node leaves the 'stage'.
virtual void setActionManager (ActionManager *actionManager)
 Sets the ActionManager object that is used by all actions.
virtual ActionManager * getActionManager ()
 Gets the ActionManager object that is used by all actions.
virtual Action * runAction (Action *action)
 Executes an action, and returns the action that is executed.
void stopAllActions ()
 Stops and removes all actions from the running action list .
void stopAction (Action *action)
 Stops and removes an action from the running action list.
void stopActionByTag (int tag)
 Removes an action from the running action list by its tag.
void stopAllActionsByTag (int tag)
 Removes all actions from the running action list by its tag.
void stopActionsByFlags (unsigned int flags)
 Removes all actions from the running action list by its flags.
Action * getActionByTag (int tag)
 Gets an action from the running action list by its tag.
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).
ssize_t getNumberOfRunningActionsByTag (int tag) const
 Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays) with a specific tag.
virtual void setScheduler (Scheduler *scheduler)
 Sets a Scheduler object that is used to schedule all "updates" and timers.
virtual Scheduler * getScheduler ()
 Gets a Scheduler object.
bool isScheduled (SEL_SCHEDULE selector) const
 Checks whether a selector is scheduled.
bool isScheduled (std::string_view key) const
 Checks whether a lambda function is scheduled.
void scheduleUpdate ()
 Schedules the "update" method.
void scheduleUpdateWithPriority (int priority)
 Schedules the "update" method with a custom priority.
void schedule (SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
 Schedules a custom selector.
void schedule (SEL_SCHEDULE selector, float interval)
 Schedules a custom selector with an interval time in seconds.
void scheduleOnce (SEL_SCHEDULE selector, float delay)
 Schedules a selector that runs only once, with a delay of 0 or larger.
void scheduleOnce (const std::function< void(float)> &callback, float delay, std::string_view key)
 Schedules a lambda function that runs only once, with a delay of 0 or larger.
void schedule (SEL_SCHEDULE selector)
 Schedules a custom selector, the scheduled selector will be ticked every frame.
void schedule (const std::function< void(float)> &callback, std::string_view key)
 Schedules a lambda function.
void schedule (const std::function< void(float)> &callback, float interval, std::string_view key)
 Schedules a lambda function.
void schedule (const std::function< void(float)> &callback, float interval, unsigned int repeat, float delay, std::string_view key)
 Schedules a lambda function.
void unschedule (SEL_SCHEDULE selector)
 Unschedules a custom selector.
void unschedule (std::string_view key)
 Unschedules a lambda function.
void unscheduleAllCallbacks ()
 Unschedule all scheduled selectors and lambda functions: custom selectors, and the 'update' selector and lambda functions.
virtual void resume ()
 Resumes all scheduled selectors, actions and event listeners.
virtual void pause ()
 Pauses all scheduled selectors, actions and event listeners.
virtual void update (float delta)
 Update method will be called automatically every frame if "scheduleUpdate" is called, and the node is "live".
virtual void updateTransform ()
 Calls children's updateTransform() method recursively.
virtual const Mat4 & getNodeToParentTransform () const
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
virtual Mat4 getNodeToParentTransform (Node *ancestor) const
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
virtual AffineTransform getNodeToParentAffineTransform (Node *ancestor) const
 Returns the affine transform matrix that transform the node's (local) space coordinates into the parent's space coordinates.
virtual void setNodeToParentTransform (const Mat4 &transform)
 Sets the transformation matrix manually.
virtual const Mat4 & getParentToNodeTransform () const
 Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates.
virtual Mat4 getNodeToWorldTransform () const
 Returns the world affine transform matrix.
virtual Mat4 getWorldToNodeTransform () const
 Returns the inverse world affine transform matrix.
Vec2 convertToNodeSpace (const Vec2 &worldPoint) const
 Converts a Vec2 to node (local) space coordinates.
Vec2 convertToWorldSpace (const Vec2 &nodePoint) const
 Converts a Vec2 to world space coordinates.
Vec2 convertToNodeSpaceAR (const Vec2 &worldPoint) const
 Converts a Vec2 to node (local) space coordinates.
Vec2 convertToWorldSpaceAR (const Vec2 &nodePoint) const
 Converts a local Vec2 to world space coordinates.The result is in Points.
Vec2 convertPointerToNodeSpace (PointerEvent *event) const
 convenience methods which take a Touch instead of Vec2.
Vec2 convertPointerToNodeSpaceAR (PointerEvent *event) const
 converts a Touch (world coordinates) into a local coordinate.
Vec2 getWorldPosition () const
 Gets position of node in world space.
void setWorldPosition (const Vec2 &position)
 Sets position of node in world space.
void setAdditionalTransform (const Mat4 *additionalTransform)
 Sets an additional transform matrix to the node.
Component * getComponent (std::string_view name)
 Gets a component by its name.
virtual bool addComponent (Component *component)
 Adds a component.
virtual bool removeComponent (std::string_view name)
 Removes a component by its name.
virtual bool removeComponent (Component *component)
 Removes a component by its pointer.
virtual void removeAllComponents ()
 Removes all components.
virtual std::string getDescription () const
 Gets the description string.
virtual void addChild (Node *child)
 Adds a child to the container with z-order as 0.
virtual void addChild (Node *child, int localZOrder)
 Adds a child to the container with a local z-order.
virtual void addChild (Node *child, int localZOrder, int tag)
 Adds a child to the container with z order and tag.
virtual void addChild (Node *child, int localZOrder, std::string_view name)
 Adds a child to the container with z order and tag.
virtual Node * getChildByTag (int tag) const
 Gets a child from the container with its tag.
template<typename T>
T getChildByTag (int tag) const
 Gets a child from the container with its tag that can be cast to Type T.
virtual Node * getChildByName (std::string_view name) const
 Gets a child from the container with its name.
template<typename T>
T getChildByName (std::string_view name) const
 Gets a child from the container with its name that can be cast to Type T.
virtual void enumerateChildren (std::string_view name, std::function< bool(Node *node)> callback) const
 Search the children of the receiving node to perform processing for nodes which share a name.
virtual Vector< Node * > & getChildren ()
 Returns the array of the node's children.
virtual ssize_t getChildrenCount () const
 Returns the amount of children.
virtual void setParent (Node *parent)
 Sets the parent node.
virtual Node * getParent ()
 Returns a pointer to the parent node.
virtual void removeFromParent ()
 Removes this node itself from its parent node with a cleanup.
virtual void removeFromParentAndCleanup (bool cleanup)
 Removes this node itself from its parent node.
virtual void removeChild (Node *child, bool cleanup=true)
 Removes a child from the container.
virtual void removeChildByTag (int tag, bool cleanup=true)
 Removes a child from the container by tag value.
virtual void removeChildByName (std::string_view name, bool cleanup=true)
 Removes a child from the container by tag value.
virtual void removeAllChildren ()
 Removes all children from the container with a cleanup.
virtual void removeAllChildrenWithCleanup (bool cleanup)
 Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter.
virtual void reorderChild (Node *child, int localZOrder)
 Reorders a child according to a new z value.
virtual void sortAllChildren ()
 Sorts the children array once before drawing, instead of every time when a child is added or reordered.
Public Member Functions inherited from Object
void retain ()
 Retains the ownership.
void release ()
 Releases the ownership immediately.
Object * autorelease ()
 Releases the ownership sometime soon automatically.
unsigned int getReferenceCount () const
 Returns the Object's current reference count.
uint64_t getObjectID () const noexcept
 Returns the process-local diagnostic identifier assigned at construction.
virtual ~Object ()
 Destructor.

Static Public Member Functions

static DrawNode * create (void)
 creates and initialize a DrawNode node.
static Node * create ()
 Allocates and initializes a node.
static int getAttachedNodeCount ()
 Gets count of nodes those are attached to scene graph.
template<typename _T>
static void sortNodes (ax::Vector< _T * > &nodes)
 Sorts helper function.

Additional Inherited Members

Static Public Attributes inherited from Node
static const int INVALID_TAG = -1
 Default tag used for all the nodes.
Protected Member Functions inherited from Node
void childrenAlloc ()
 lazy allocs
void insertChild (Node *child, int z)
 helper that reorder a child
void detachChild (Node *child, ssize_t index, bool cleanup)
 Removes a child, call child->onExit(), do cleanup, remove it from children array.
Vec2 convertToScreenSpace (const Vec2 &nodePoint) const
 Convert axmol coordinates to UI windows coordinate.
Protected Attributes inherited from Node
float _rotationX
 rotation on the X-axis
float _rotationY
 rotation on the Y-axis
float _rotationZ_X
 rotation angle on Z-axis, component X
float _rotationZ_Y
 rotation angle on Z-axis, component Y
rhi::VertexLayout * _vertexLayout = nullptr
 rotation using quaternion, if _rotationZ_X == _rotationZ_Y, _rotationQuat = RotationZ_X * RotationY * RotationX, else _rotationQuat = RotationY * RotationX
float _scaleX
 scaling factor on x-axis
float _scaleY
 scaling factor on y-axis
float _scaleZ
 scaling factor on z-axis
Vec2 _position
 position of the node
float _positionZ
 OpenGL real Z position.
float _skewX
 skew angle on x-axis
float _skewY
 skew angle on y-axis
Vec2 _anchorPointInPoints
 anchor point in points
Vec2 _anchorPoint
 anchor point normalized (NOT in points)
Vec2 _contentSize
 untransformed size of the node
Mat4 _modelViewTransform
 ModelView transform of the Node.
Mat4 _transform
 transform
Mat4 _inverse
 inverse transform
Mat4 * _additionalTransform
 two transforms needed by additional transforms
float _globalZOrder
 Global order used to sort the node.
Vector< Node * > _children
 array of children nodes
NodeIndexerMap_t * _childrenIndexer
 The children indexer for fast find child.
Node * _parent
 weak reference to parent node
int _tag
 a tag. Can be any number you assigned just to identify this node
std::string _name
 a string label, an user defined string to identify this node
uint64_t _hashOfName
 hash value of _name, used for speed in getChildByName
void * _userData
 A user assigned void pointer, Can be point to any cpp object.
Object * _userObject
 A user assigned Object.
Scheduler * _scheduler
 scheduler used to schedule timers and updates
ActionManager * _actionManager
 a pointer to ActionManager singleton, which is used to handle all the actions
EventDispatcher * _eventDispatcher
 event dispatcher used to dispatch all kinds of events
bool _reorderChildDirty
 children order dirty flag
bool _running
 is running
bool _visible
 is this node visible
bool _ignoreAnchorPointForPosition
 true if the Anchor Vec2 will be (0,0) when you position the Node, false otherwise. Used by Layer and Scene.
bool _isTransitionFinished
 flag to indicate whether the transition was finished
bool _contentSizeDirty
 whether or not the contentSize is dirty
bool _transformDirty
 transform dirty flag
bool _inverseDirty
 inverse transform dirty flag
bool _additionalTransformDirty
 transform dirty ?
bool _transformUpdated
 Whether or not the Transform object was updated since the last frame.
ComponentContainer * _componentContainer
 Dictionary of components.

Detailed Description

Node that draws dots, segments and polygons.

Faster than the "drawing primitives" since they draws everything in one single batch.

Since
v2.1

Member Enumeration Documentation

◆ DrawMode

enum class DrawMode
strong

Different draw modus types.

Member Function Documentation

◆ create()

DrawNode * create ( void )
static

creates and initialize a DrawNode node.

Returns
Return an autorelease object.

◆ drawPoint()

void drawPoint ( const Vec2 & point,
const float pointSize,
const Color & color,
DrawNode::PointStyle pointType = DrawNode::PointStyle::Rect )

Draw a point.

Parameters
pointA Vec2 used to point.
pointSizeThe point size.
colorThe point color.

◆ drawPoints() [1/2]

void drawPoints ( const Vec2 * position,
unsigned int numberOfPoints,
const Color & color,
DrawNode::PointStyle pointType = DrawNode::PointStyle::Rect )

Draw a group point.

Parameters
positionA Vec2 pointer.
numberOfPointsThe number of points.
colorThe point color.

◆ drawPoints() [2/2]

void drawPoints ( const Vec2 * position,
unsigned int numberOfPoints,
const float pointSize,
const Color & color,
DrawNode::PointStyle pointType = DrawNode::PointStyle::Rect )

Draw a group point.

Parameters
positionA Vec2 pointer.
numberOfPointsThe number of points.
pointSizeThe point size.
colorThe point color.

◆ drawLine()

void drawLine ( const Vec2 & origin,
const Vec2 & destination,
const Color & color,
float thickness = 1.0f,
DrawNode::EndStyle etStart = DrawNode::EndStyle::Round,
DrawNode::EndStyle etEnd = DrawNode::EndStyle::Round )

Draw an line from origin to destination with color.

Parameters
originThe line origin.
destinationThe line destination.
colorThe line color.

◆ drawRect() [1/2]

void drawRect ( const Vec2 & origin,
const Vec2 & destination,
const Color & color,
float thickness = 1.0f )

Draws a rectangle given the origin and destination point measured in points.

The origin and the destination can not have the same x and y coordinate.

Parameters
originThe rectangle origin.
destinationThe rectangle destination.
colorThe rectangle color.

◆ drawPoly()

void drawPoly ( const Vec2 * poli,
unsigned int numberOfPoints,
bool closedPolygon,
const Color & color,
float thickness = 1.0f )

Draws a polygon given a pointer to point coordinates and the number of vertices measured in points.

The polygon can be closed or open.

Parameters
poliA pointer to point coordinates.
numberOfPointsThe number of vertices measured in points.
closePolygonThe polygon can be closed or open.
colorThe polygon color.

◆ drawCircle() [1/3]

void drawCircle ( const Vec2 & center,
float radius,
float angle,
unsigned int segments,
bool drawLineToCenter,
float scaleX,
float scaleY,
const Color & color,
float thickness = 1.0f )

Draws a circle given the center, radius and number of segments.

Parameters
centerThe circle center point.
radiusThe circle rotate of radius.
angleThe circle angle.
segmentsThe number of segments.
drawLineToCenterWhether or not draw the line from the origin to center.
scaleXThe scale value in x.
scaleYThe scale value in y.
colorSet the circle color.
thickness(default 1.0f)

◆ drawCircle() [2/3]

void drawCircle ( const Vec2 & center,
float radius,
float angle,
unsigned int segments,
bool drawLineToCenter,
const Color & color,
float thickness = 1.0f )

Draws a circle given the center, radius and number of segments.

Parameters
centerThe circle center point.
radiusThe circle rotate of radius.
angleThe circle angle.
segmentsThe number of segments.
drawLineToCenterWhether or not draw the line from the origin to center.
colorSet the circle color.
thickness(default 1.0f)

◆ drawCircle() [3/3]

void drawCircle ( const Vec2 & center,
float radius,
const Color & color,
float thickness = 1.0f )

Draws a (fast) circle given the center, radius.

Parameters
centerThe circle center point.
radiusThe circle rotate of radiu
colorSet the circle color.
thickness(default 1.0f)

◆ drawStar()

void drawStar ( const Vec2 & center,
float radiusI,
float radiusO,
unsigned int segments,
const Color & color,
float thickness = 1.0f )

Draws a star given the center, radiusI, radiusO and number of segments.

Parameters
centerThe circle center point.
radiusIThe inner radius.
radiusOThe outer radius.
segmentsThe number of segments.
colorSet the star color.
thickness(default = 1.0f)

◆ drawSolidStar()

void drawSolidStar ( const Vec2 & center,
float radiusI,
float radiusO,
unsigned int segments,
const Color & color,
const Color & filledColor,
float thickness = 1.0f )

Draws a solid star given the center, radiusI, radiusO and number of segments.

Parameters
centerThe circle center point.
radiusIThe inner radius.
radiusOThe outer radius.
segmentsThe number of segments.
colorSet the star color.
thickness(default = 1.0f)

◆ drawQuadBezier()

void drawQuadBezier ( const Vec2 & origin,
const Vec2 & control,
const Vec2 & destination,
unsigned int segments,
const Color & color,
float thickness = 1.0f )

Draws a quad bezier path.

Parameters
originThe origin of the bezier path.
controlThe control of the bezier path.
destinationThe destination of the bezier path.
segmentsThe number of segments.
colorSet the quad bezier color.

◆ drawCubicBezier()

void drawCubicBezier ( const Vec2 & origin,
const Vec2 & control1,
const Vec2 & control2,
const Vec2 & destination,
unsigned int segments,
const Color & color,
float thickness = 1.0f )

Draw a cubic bezier curve with color and number of segments.

Parameters
originThe origin of the bezier path.
control1The first control of the bezier path.
control2The second control of the bezier path.
destinationThe destination of the bezier path.
segmentsThe number of segments.
colorSet the cubic bezier color.

◆ drawCardinalSpline()

void drawCardinalSpline ( const PointArray * configIn,
float tension,
unsigned int segments,
const Color & color,
float thickness = 1.0f,
bool closed = false )

Draws a Cardinal Spline path.

Parameters
configA array point.
tensionThe tension of the spline.
segmentsThe number of segments.
colorSet the Spline color.

◆ drawCatmullRom()

void drawCatmullRom ( const PointArray * pointsIn,
unsigned int segments,
const Color & color,
float thickness = 1.0f,
bool closed = false )

Draws a Catmull Rom path.

Parameters
pointsA point array of control point.
segmentsThe number of segments.
colorThe Catmull Rom color.

◆ drawDot()

void drawDot ( const Vec2 & pos,
float radius,
const Color & color )

draw a dot at a position, with a given radius and color.

Parameters
posThe dot center.
radiusThe dot radius.
colorThe dot color.

◆ drawRect() [2/2]

void drawRect ( const Vec2 & p1,
const Vec2 & p2,
const Vec2 & p3,
const Vec2 & p4,
const Color & color,
float thickness = 1.0f )

Draws a rectangle with 4 points.

Parameters
p1The rectangle vertex point.
p2The rectangle vertex point.
p3The rectangle vertex point.
p4The rectangle vertex point.
colorThe rectangle color.
thicknessThe rectangle thickness.

◆ drawCornerRect()

void drawCornerRect ( const Vec2 & origin,
const Vec2 & destination,
const Color & color,
float thickness = 1.0f,
float crLB = 5.0f,
float crLT = 5.0f,
float crRT = 5.0f,
float crRB = 5.0f,
CornerMode mode = CornerMode::Round )

Draws a rectangle with 4 rounded corners.

Parameters
originThe rectangle vertex point.
destinationThe rectangle vertex point.
colorThe rectangle color. Alpha != 0.0 || alpha != 1.0 is not supported
thicknessThe rectangle thickness.
crLBThe radius of the left-bottom corner.
crLTThe radius of the left-top corner.
crRTThe radius of the right-top corner.
crRBThe radius of the right-bottom corner.
modeThe mode for drawing the corners.

◆ drawSolidCornerRect()

void drawSolidCornerRect ( const Vec2 & origin,
const Vec2 & destination,
const Color & fillColor,
const Color & borderColor,
float thickness = 1.0f,
float crLB = 5.0f,
float crLT = 5.0f,
float crRT = 5.0f,
float crRB = 5.0f,
CornerMode mode = CornerMode::Round )

Draws a solid rectangle with 4 rounded corners.

Parameters
originThe rectangle vertex point.
destinationThe rectangle vertex point.
fillColorThe fill color of the rectangle. Alpha != 0.0 || alpha != 1.0 is not supported
borderColorThe border color of the rectangle. Alpha != 0.0 || alpha != 1.0 is not supported
thicknessThe rectangle thickness.
crLBThe radius of the left-bottom corner.
crLTThe radius of the left-top corner.
crRTThe radius of the right-top corner.
crRBThe radius of the right-bottom corner.
modeThe mode for drawing the corners.

◆ drawSolidRect()

void drawSolidRect ( const Vec2 & origin,
const Vec2 & destination,
const Color & color,
float thickness = 0,
const Color & borderColor = Color(0, 0, 0, 0) )

Draws a solid rectangle given the origin and destination point measured in points.

The origin and the destination can not have the same x and y coordinate.

Parameters
originThe rectangle origin.
destinationThe rectangle destination.
colorThe rectangle color.

◆ drawSolidPoly()

void drawSolidPoly ( const Vec2 * poli,
unsigned int numberOfPoints,
const Color & color,
float thickness = 0,
const Color & borderColor = Color(0, 0, 0, 0),
bool isconvex = false )

Draws a solid polygon given a pointer to CGPoint coordinates, the number of vertices measured in points, and a color.

Parameters
poliA solid polygon given a pointer to CGPoint coordinates.
numberOfPointsThe number of vertices measured in points.
colorThe solid polygon color.

◆ drawSolidCircle() [1/3]

void drawSolidCircle ( const Vec2 & center,
float radius,
float angle,
unsigned int segments,
float scaleX,
float scaleY,
const Color & fillColor,
float thickness,
const Color & borderColor,
bool drawLineToCenter = false )

Draws a solid circle given the center, radius and number of segments.

Parameters
centerThe circle center point.
radiusThe circle rotate of radius.
angleThe circle angle.
segmentsThe number of segments.
scaleXThe scale value in x.
scaleYThe scale value in y.
fillColorThe color will fill in polygon.
thicknessThe border of line width.
borderColorThe border of line color.
drawLineToCenterWhether or not draw the line from the origin to center.

◆ drawSolidCircle() [2/3]

void drawSolidCircle ( const Vec2 & center,
float radius,
float angle,
unsigned int segments,
float scaleX,
float scaleY,
const Color & color )

Draws a solid circle given the center, radius and number of segments.

Parameters
centerThe circle center point.
radiusThe circle rotate of radius.
angleThe circle angle.
segmentsThe number of segments.
scaleXThe scale value in x.
scaleYThe scale value in y.
colorThe solid circle color.

◆ drawSolidCircle() [3/3]

void drawSolidCircle ( const Vec2 & center,
float radius,
float angle,
unsigned int segments,
const Color & color )

Draws a solid circle given the center, radius and number of segments.

Parameters
centerThe circle center point.
radiusThe circle rotate of radius.
angleThe circle angle.
segmentsThe number of segments.
colorThe solid circle color.

◆ drawPie() [1/2]

void drawPie ( const Vec2 & center,
float radius,
float rotation,
int startAngle,
int endAngle,
float scaleX,
float scaleY,
const Color & fillColor,
const Color & borderColor,
DrawMode drawMode = DrawMode::Outline,
float thickness = 1.0f )

Draws a pie given the center, radius, angle, start angle, end angle and number of segments.

Parameters
centerThe circle center point.
radiusThe circle rotate of radius.
angleThe circle angle.
startAngleThe start angle.
endAngleThe end angle.
scaleXThe scale value in x.
scaleYThe scale value in y.
fillColorThe solid circle color.
borderColorThe borderColor.
DrawModeThe draw mode

◆ drawPie() [2/2]

void drawPie ( const Vec2 & center,
float radius,
float angle,
int startAngle,
int endAngle,
float scaleX,
float scaleY,
const Color & color,
DrawMode drawMode = DrawMode::Outline )

Draws a pie given the center, radius, angle, start angle, end angle and number of segments.

Parameters
centerThe circle center point.
radiusThe circle rotate of radius.
angleThe circle angle.
startAngleThe start angle.
endAngleThe end angle.
scaleXThe scale value in x.
scaleYThe scale value in y.
colorThe solid circle color.
DrawModeThe draw mode

◆ drawSegment()

void drawSegment ( const Vec2 & from,
const Vec2 & to,
float radius,
const Color & color,
DrawNode::EndStyle etStart = DrawNode::EndStyle::Round,
DrawNode::EndStyle etEnd = DrawNode::EndStyle::Round )

draw a segment with a radius and color.

Parameters
fromThe segment origin.
toThe segment destination.
radiusThe segment radius.
colorThe segment color.

◆ drawPolygon()

void drawPolygon ( const Vec2 * verts,
int count,
const Color & fillColor,
float thickness,
const Color & borderColor,
bool isconvex = false )

draw a polygon with a fill color and line color

When this function bound into js or lua,the parameter will be changed
In js: var drawPolygon(var Arrayofpoints, var fillColor, var width, var borderColor)
In lua:local drawPolygon(local pointTable,local tableCount,local fillColor,local width,local borderColor)
void drawPolygon(const Vec2 *verts, int count, const Color &fillColor, float thickness, const Color &borderColor, bool isconvex=false)
draw a polygon with a fill color and line color
Parameters
vertsA pointer to point coordinates.
countThe number of verts measured in points.
fillColorThe color will fill in polygon.
thicknessThe border of line width.
borderColorThe border of line color.

◆ drawColoredTriangle()

void drawColoredTriangle ( const Vec2 * vertices3,
const Color * color3 )

draw a triangle with color.

Parameters
p1The triangle vertex point.
p2The triangle vertex point.
p3The triangle vertex point.
colorThe triangle color.

◆ getBlendFunc()

const BlendFunc & getBlendFunc ( ) const
override

Get the color mixed mode.

@lua NA

◆ setBlendFunc()

void setBlendFunc ( const BlendFunc & blendFunc)
override

Set the color mixed mode.

When this function bound into js or lua,the parameter will be changed
In js: var setBlendFunc(var src, var dst)
void setBlendFunc(const BlendFunc &blendFunc) override
Set the color mixed mode.

@lua NA

◆ draw()

void draw ( const SceneRenderState & state,
const Mat4 & transform,
uint32_t flags )
overridevirtual

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.
Parameters
stateA scene render traversal state.
transformA transform matrix.
flagsRenderer flag.

Reimplemented from Node.

◆ visit()

void visit ( const SceneRenderState & state,
const Mat4 & parentTransform,
uint32_t parentFlags )
overridevirtual

Visits this node's children and draw them recursively.

Parameters
stateA scene render traversal state.
parentTransformA transform matrix.
parentFlagsRenderer flag.

Reimplemented from Node.

◆ setIsolated()

void setIsolated ( bool isolated)
inline

When isolated is set, the position of the node is no longer affected by parent nodes.

Which means it will be drawn just like a root node.


The documentation for this class was generated from the following file:
  • DrawNode.h