 |
CUGL 1.3
Cornell University Game Library
|
43 #ifndef __CU_SCENE_H__
44 #define __CU_SCENE_H__
46 #include <cugl/math/cu_math.h>
47 #include <cugl/2d/CUNode.h>
48 #include <cugl/renderer/CUOrthographicCamera.h>
71 std::shared_ptr<OrthographicCamera>
_camera;
92 #pragma mark Constructors
140 bool init(
float width,
float height) {
141 return init(0,0,width,height);
192 bool init(
float x,
float y,
float width,
float height);
195 #pragma mark Static Constructors
206 std::shared_ptr<Scene> result = std::make_shared<Scene>();
207 return (result->init(size) ? result :
nullptr);
220 static std::shared_ptr<Scene>
alloc(
float width,
float height) {
221 std::shared_ptr<Scene> result = std::make_shared<Scene>();
222 return (result->init(width,height) ? result :
nullptr);
237 std::shared_ptr<Scene> result = std::make_shared<Scene>();
238 return (result->init(rect) ? result :
nullptr);
254 std::shared_ptr<Scene> result = std::make_shared<Scene>();
255 return (result->init(origin,size) ? result :
nullptr);
272 static std::shared_ptr<Scene>
alloc(
float x,
float y,
float width,
float height) {
273 std::shared_ptr<Scene> result = std::make_shared<Scene>();
274 return (result->init(x,y,width,height) ? result :
nullptr);
278 #pragma mark Attributes
305 const std::shared_ptr<Camera>
getCamera()
const;
337 virtual std::string
toString(
bool verbose =
false)
const;
340 operator std::string()
const {
return toString(); }
343 #pragma mark View Size
430 void setBounds(
float x,
float y,
float width,
float height) {
431 _camera->set(x,y,width,height);
467 return _camera->screenToWorldCoords(screenCoords);
486 return _camera->worldToScreenCoords(worldCoords);
490 #pragma mark Scene Graph
509 std::shared_ptr<Node>
getChild(
unsigned int pos);
522 const std::shared_ptr<Node>&
getChild(
unsigned int pos)
const;
540 template <
typename T>
541 inline std::shared_ptr<T>
getChild(
unsigned int pos)
const {
542 return std::dynamic_pointer_cast<T>(
getChild(pos));
576 template <
typename T>
593 std::shared_ptr<Node>
getChildByName(
const std::string& name)
const;
612 template <
typename T>
656 virtual void addChild(
const std::shared_ptr<Node>& child,
int zval);
686 void addChildWithTag(
const std::shared_ptr<Node>& child,
unsigned int tag,
int zval) {
703 child->setName(name);
719 void addChildWithName(
const std::shared_ptr<Node>& child,
const std::string &name,
int zval) {
721 child->setName(name);
737 void swapChild(
const std::shared_ptr<Node>& child1,
const std::shared_ptr<Node>& child2,
bool inherit=
false);
759 void removeChild(
const std::shared_ptr<Node>& child);
861 #pragma mark Scene Logic
903 void render(
const std::shared_ptr<SpriteBatch>& batch);
907 #pragma mark Internal Helpers
925 void setZDirty(
bool value) {
_zDirty = value; }
void setColor(Color4 color)
Definition: CUScene.h:325
virtual bool init(const Size &size)
Definition: CUScene.h:126
bool _active
Definition: CUScene.h:89
void setZAutoSort(bool value)
Definition: CUScene.h:820
static std::shared_ptr< Scene > alloc(float width, float height)
Definition: CUScene.h:220
void setSize(float width, float height)
Definition: CUScene.h:363
virtual bool init(const Vec2 &origin, const Size &size)
Definition: CUScene.h:173
bool isZAutoSort()
Definition: CUScene.h:805
bool isActive() const
Definition: CUScene.h:867
void setWidth(float width)
Definition: CUScene.h:375
static std::shared_ptr< Scene > alloc(const Vec2 &origin, const Size &size)
Definition: CUScene.h:253
void setBounds(float x, float y, float width, float height)
Definition: CUScene.h:430
std::shared_ptr< T > getChildByTag(unsigned int tag) const
Definition: CUScene.h:577
static std::shared_ptr< Scene > alloc(const Rect &rect)
Definition: CUScene.h:236
Vec3 screenToWorldCoords(const Vec2 &screenCoords) const
Definition: CUScene.h:466
Definition: CUColor4.h:1084
virtual void removeChild(unsigned int pos)
float width
Definition: CUSize.h:61
const std::vector< std::shared_ptr< Node > > & getChildren() const
Definition: CUScene.h:629
float x
Definition: CUVec2.h:66
static std::shared_ptr< Scene > alloc(const Size &size)
Definition: CUScene.h:205
std::shared_ptr< T > getChildByName(const std::string &name) const
Definition: CUScene.h:613
GLenum _dstFactor
Definition: CUScene.h:86
std::shared_ptr< Camera > getCamera()
std::shared_ptr< Node > getChild(unsigned int pos)
std::string _name
Definition: CUScene.h:69
void swapChild(const std::shared_ptr< Node > &child1, const std::shared_ptr< Node > &child2, bool inherit=false)
void render(const std::shared_ptr< SpriteBatch > &batch)
Vec2 origin
Definition: CURect.h:49
void removeChildByName(const std::string &name)
void setBounds(const Rect &rect)
Definition: CUScene.h:400
virtual void update(float timestep)
Definition: CUScene.h:883
bool _zDirty
Definition: CUScene.h:77
bool isZDirty() const
Definition: CUScene.h:839
float y
Definition: CUVec2.h:68
void setBounds(const Vec2 &origin, const Size &size)
Definition: CUScene.h:414
virtual void reset()
Definition: CUScene.h:888
bool _zSort
Definition: CUScene.h:79
virtual void removeAllChildren()
virtual bool init(const Rect &rect)
Definition: CUScene.h:156
void addChild(std::shared_ptr< Node > child)
Definition: CUScene.h:640
Color4 getColor()
Definition: CUScene.h:315
std::shared_ptr< Node > getChildByName(const std::string &name) const
void addChildWithTag(const std::shared_ptr< Node > &child, unsigned int tag)
Definition: CUScene.h:668
void setHeight(float height)
Definition: CUScene.h:387
std::vector< std::shared_ptr< Node > > _children
Definition: CUScene.h:73
virtual std::string toString(bool verbose=false) const
Color4 _color
Definition: CUScene.h:75
Vec2 worldToScreenCoords(const Vec3 &worldCoords) const
Definition: CUScene.h:485
size_t getChildCount() const
Definition: CUScene.h:496
void addChildWithName(const std::shared_ptr< Node > &child, const std::string &name)
Definition: CUScene.h:701
virtual void setActive(bool value)
Definition: CUScene.h:874
void setName(const std::string &name)
Definition: CUScene.h:291
void addChildWithName(const std::shared_ptr< Node > &child, const std::string &name, int zval)
Definition: CUScene.h:719
bool init(float width, float height)
Definition: CUScene.h:140
~Scene()
Definition: CUScene.h:107
GLenum _srcFactor
Definition: CUScene.h:84
GLenum _blendEquation
Definition: CUScene.h:82
void setOffset(const Vec2 &origin)
Definition: CUScene.h:443
Size size
Definition: CURect.h:51
std::vector< std::shared_ptr< Node > > getChildren()
Definition: CUScene.h:622
std::shared_ptr< OrthographicCamera > _camera
Definition: CUScene.h:71
std::shared_ptr< T > getChild(unsigned int pos) const
Definition: CUScene.h:541
void removeChildByTag(unsigned int tag)
std::shared_ptr< Node > getChildByTag(unsigned int tag) const
float height
Definition: CUSize.h:63
void setSize(const Size &size)
Definition: CUScene.h:351
const std::string & getName() const
Definition: CUScene.h:284
void addChildWithTag(const std::shared_ptr< Node > &child, unsigned int tag, int zval)
Definition: CUScene.h:686
static std::shared_ptr< Scene > alloc(float x, float y, float width, float height)
Definition: CUScene.h:272