34 #ifndef __CU_TEXTURED_NODE_H__
35 #define __CU_TEXTURED_NODE_H__
38 #include <cugl/math/CUPoly2.h>
39 #include <cugl/2d/CUNode.h>
40 #include <cugl/renderer/CUTexture.h>
41 #include <cugl/renderer/CUVertex.h>
119 #pragma mark Constructors
143 virtual void dispose()
override;
171 bool init(
const std::vector<Vec2>& vertices) {
229 bool initWithFile(
const std::string& filename,
const std::vector<Vec2>& vertices) {
230 _polygon.
set(vertices);
278 bool initWithTexture(
const std::shared_ptr<Texture>& texture,
const std::vector<Vec2>& vertices) {
334 #pragma mark Attributes
358 void setTexture(
const std::shared_ptr<Texture>& texture);
381 virtual void setPolygon(
const std::vector<Vec2>& vertices) = 0;
452 void setBlendFunc(GLenum srcFactor, GLenum dstFactor) { _srcFactor = srcFactor; _dstFactor = dstFactor; }
559 virtual std::string
toString(
bool verbose=
false)
const override;
563 #pragma mark Scaling Attributes
661 #pragma mark Rendering
685 virtual void draw(
const std::shared_ptr<SpriteBatch>& batch,
686 const Mat4& transform,
Color4 tint)
override = 0;
694 #pragma mark Internal Helpers
GLenum getDestinationBlendFactor() const
Definition: CUTexturedNode.h:480
virtual void setContentSize(float width, float height) override
Definition: CUTexturedNode.h:655
bool init(const Poly2 &poly)
Definition: CUTexturedNode.h:186
bool initWithTexture(const std::shared_ptr< Texture > &texture)
Definition: CUTexturedNode.h:84
static const Rect ZERO
Definition: CURect.h:54
bool _stretch
Definition: CUTexturedNode.h:99
virtual bool initWithData(const SceneLoader *loader, const std::shared_ptr< JsonValue > data) override
bool isFlipVertical() const
Definition: CUTexturedNode.h:547
GLenum _srcFactor
Definition: CUTexturedNode.h:109
void setBlendFunc(GLenum srcFactor, GLenum dstFactor)
Definition: CUTexturedNode.h:452
Definition: CUPoly2.h:115
bool init(const Rect &rect)
Definition: CUTexturedNode.h:203
void flipVertical(bool flag)
Definition: CUTexturedNode.h:540
const std::shared_ptr< Texture > & getTexture() const
Definition: CUTexturedNode.h:372
bool initWithFile(const std::string &filename, const std::vector< Vec2 > &vertices)
Definition: CUTexturedNode.h:229
std::vector< Vertex2 > _vertices
Definition: CUTexturedNode.h:104
std::string _classname
Definition: CUTexturedNode.h:88
GLenum getBlendEquation() const
Definition: CUTexturedNode.h:511
const Rect & getBounds() const
Definition: CUPoly2.h:873
virtual std::string toString(bool verbose=false) const override
void updateTextureCoords()
void setTexture(const std::string &filename)
Definition: CUTexturedNode.h:344
bool _flipVertical
Definition: CUTexturedNode.h:116
const Rect & getBoundingRect() const
Definition: CUTexturedNode.h:432
bool init(const std::vector< Vec2 > &vertices)
Definition: CUTexturedNode.h:171
GLenum getSourceBlendFactor() const
Definition: CUTexturedNode.h:466
virtual void setContentSize(const Size &size) override
virtual void setAnchor(const Vec2 &anchor)
static std::shared_ptr< Texture > allocWithFile(const std::string &filename)
Definition: CUTexture.h:245
bool _flipHorizontal
Definition: CUTexturedNode.h:114
GLenum _blendEquation
Definition: CUTexturedNode.h:107
virtual void dispose() override
static const Vec2 ANCHOR_BOTTOM_LEFT
Definition: CUVec2.h:82
bool isFlipHorizontal() const
Definition: CUTexturedNode.h:529
virtual void setAnchor(const Vec2 &anchor) override
Definition: CUTexturedNode.h:624
virtual void draw(const std::shared_ptr< SpriteBatch > &batch, const Mat4 &transform, Color4 tint) override=0
virtual bool init() override
Definition: CUTexturedNode.h:154
Vec2 _anchor
Definition: CUNode.h:109
virtual void shiftPolygon(float dx, float dy)
const Poly2 & getPolygon() const
Definition: CUTexturedNode.h:404
bool _rendered
Definition: CUTexturedNode.h:102
Definition: CUSceneLoader.h:77
CU_DISALLOW_COPY_AND_ASSIGN(TexturedNode)
void setAbsolute(bool flag)
Definition: CUTexturedNode.h:596
void flipHorizontal(bool flag)
Definition: CUTexturedNode.h:522
Poly2 & set(const std::vector< Vec2 > &vertices)
virtual void generateRenderData()
bool initWithTexture(const std::shared_ptr< Texture > &texture, const std::vector< Vec2 > &vertices)
Definition: CUTexturedNode.h:278
Poly2 _polygon
Definition: CUTexturedNode.h:94
std::shared_ptr< Texture > _texture
Definition: CUTexturedNode.h:91
virtual void setPolygon(const std::vector< Vec2 > &vertices)=0
GLenum _dstFactor
Definition: CUTexturedNode.h:111
Definition: CUColor4.h:1084
~TexturedNode()
Definition: CUTexturedNode.h:132
bool isAbsolute() const
Definition: CUTexturedNode.h:579
Definition: CUAction.h:51
std::shared_ptr< Texture > & getTexture()
Definition: CUTexturedNode.h:365
void setBlendEquation(GLenum equation)
Definition: CUTexturedNode.h:497
bool initWithFile(const std::string &filename)
void refresh()
Definition: CUTexturedNode.h:691
bool _absolute
Definition: CUTexturedNode.h:97