rag
graphic 2d engine
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
rag::DisplayObject Class Reference

Core object used to display things in screen. More...

#include <DisplayObject.h>

Inheritance diagram for rag::DisplayObject:
events::EventDispatcher rag::Bitmap rag::Keyboard rag::MovieClip rag::TextEdit rag::TextField rag::TextInput spine::SkeletonDrawable

Public Member Functions

void addChild (DisplayObject *child)
 Adds a DisplayObject child.
 
void addChildAt (DisplayObject *child, int index)
 Adds a DisplayObject child in a specific order.
 
void removeChild (DisplayObject *child)
 Removes a child DisplayObject. More...
 
void deleteChild (DisplayObject *child)
 Deletes a specific child from the DisplayList. More...
 
DisplayObjectgetChildByName (const std::string &name)
 Returns a child by name.
 
DisplayObjectgetChildAt (int index)
 Returns a child by index.
 
int getChildIndex (DisplayObject *child) const
 Returns a child's index.
 
bool contains (const DisplayObject *child) const
 Returns true if the child DisplayObject exists as a child.
 
int getNumChilds ()
 Returns the number of childs.
 
void swapChildren (DisplayObject *child1, DisplayObject *child2)
 Swaps two childs indexes.
 
virtual void logicUpdate ()
 This function is called every frame.
 
virtual void logicTraversal ()
 Recursively calls logicUpdate in all child objects. More...
 
virtual void render ()
 Renders the DisplayObject in the screen.
 
virtual void renderTraversal (const Color &color)
 Recursively calls render in all childs objects.
 
virtual void prerender ()
 Temporal transition to new automatic batch render.
 
void setX (float x)
 Sets x position.
 
float getX ()
 Returns x position.
 
void setY (float y)
 Sets y position.
 
float getY ()
 Returns y position.
 
void setPosition (float x, float y)
 Sets x and y position.
 
void setPosition (glm::vec2 p)
 Sets object position.
 
glm::vec2 getPosition () const
 Returns object position.
 
void setScale (float scale)
 Sets object scale.
 
void setScaleX (float scaleX)
 Sets object x scale.
 
float getScaleX () const
 Returns object x scale.
 
void setScaleY (float scaleY)
 Sets object y scale.
 
float getScaleY () const
 Returns object y scale.
 
void setAngle (float angle)
 Sets object orientation angle.
 
float getAngle () const
 Returns object orientation angle.
 
void setSkewX (float skewX)
 Sets object x skew.
 
float getSkewX () const
 Returns object x skew.
 
void setSkewY (float skewY)
 Sets object y skew.
 
float getSkewY () const
 Returns object y skew.
 
void setWidth (float width)
 Sets object width.
 
float getWidth ()
 Returns object width.
 
void setHeight (float height)
 Sets object width.
 
float getHeight ()
 Returns object width.
 
virtual bool hitTestPoint (int x, int y)
 Returns true if the point lies inside the object boundary box.
 
glm::vec2 localToGlobal (const glm::vec2 &point)
 Converts local coordinates to global coordinates.
 
glm::vec2 globalToLocal (const glm::vec2 &point)
 Convert global coordinates to local coordinates.
 
void setClipRectangle (const Rectangle &rect)
 This allow to render just a part of the bitmap.
 
Rectangle getBounds (DisplayObject *targetCoordinateSpace=NULL)
 Returns the boundary box of the object.
 
void onNativeEvent (events::TouchEvent &event)
 Notifies the object about an input event. More...
 
void setText (rag::DisplayObject *displayObject, const std::string &text)
 Helper function to set a text.
 
void setText (rag::DisplayObject *displayObject, int value)
 Helper function to set a text number.
 
void destroy ()
 self-destroy the object and all its childs. More...
 
void updateMatrix ()
 
- Public Member Functions inherited from events::EventDispatcher
void addEventListener (std::string type, EventListener *listener)
 
void dispatchEvent (Event &event)
 
bool hasEventListener (std::string type)
 
void removeEventListener (std::string type, EventListener *listener)
 

Static Public Member Functions

static void deletePendentObjects ()
 Deletes from memory all the nodes currently on the toDelete list. More...
 
static void showLivingObjects ()
 Logs information about the current number of living DisplayObject.
 

Public Attributes

std::string name
 
DisplayObjectparent
 
std::vector< DisplayObject * > childs
 List of childs.
 
Color color
 Color of the object.
 
Material material
 Material of the object.
 
MaterialrenderMaterial
 The render material modified by the display list hierarchy.
 
glm::mat4 matrix
 The object matrix.
 
bool visible
 Determines object visibility.
 
bool autoScaleOnTouch
 When true, the bounds scale when is touched. More...
 
bool captureInput
 When true, input events are captured and propagation stops.
 
bool checkHitPoint
 When captureInput, checkHitPoint makes capture input only when hitTest is true. Defaults to false.
 
std::string soundName
 
std::string script
 

Protected Member Functions

virtual void updateBounds (rag::DisplayObject *targetCoordinateSpace)
 Updates the bounding box of the object according to childs bounds. More...
 

Protected Attributes

float scaleX
 
float scaleY
 
float x
 
float y
 
float width
 
float height
 
float angle
 
float skewX
 
float skewY
 
Rectangle bounds
 
int numChilds
 
bool dirty
 
Color colorTransform
 
Rectangle clipRect
 

Detailed Description

Core object used to display things in screen.

DisplayObject represents a node in a tree, and can have one or many DisplayObject childrens. Custom objects can inherit DisplayObject and override its basic functionality. EventDispatcher is extended for convenience, thus allowing to easily work with events.

Member Function Documentation

void DisplayObject::deleteChild ( rag::DisplayObject child)

Deletes a specific child from the DisplayList.

The child object is destroyed.

void DisplayObject::deletePendentObjects ( )
static

Deletes from memory all the nodes currently on the toDelete list.

Don't call more than once per frame

void DisplayObject::destroy ( )

self-destroy the object and all its childs.

Objects are usually deleted if they are part of the displaylist. If they're not, you can still delete their hierarchy by calling destroy.

void DisplayObject::logicTraversal ( )
virtual

Recursively calls logicUpdate in all child objects.

This should be called once every frame in the root object.

void DisplayObject::onNativeEvent ( events::TouchEvent event)

Notifies the object about an input event.

Todo:
This API should be moved to an input UI panel
void DisplayObject::removeChild ( DisplayObject child)

Removes a child DisplayObject.

The child reference stops being child of the DisplayObject. If the child doesn't exists then nothing is done.

See also
deleteChild()
void DisplayObject::updateBounds ( rag::DisplayObject targetCoordinateSpace)
protectedvirtual

Updates the bounding box of the object according to childs bounds.

Is not required to call this function directly.

Reimplemented in spine::SkeletonDrawable.

void DisplayObject::updateMatrix ( )

Updates internal matrix from values such as parent matrix, position, scale and skew. Usually you don't need to call this directly.

Member Data Documentation

bool rag::DisplayObject::autoScaleOnTouch

When true, the bounds scale when is touched.

Todo:
autoScale is weird, the only thing taht should autoscale should be buttons. Actually buttons should also by default captureInput and checkhitpoint.
std::string rag::DisplayObject::soundName
Todo:
This should be part of a button.

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