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) {
329 #pragma mark Attributes
353 void setTexture(
const std::shared_ptr<Texture>& texture);
376 virtual void setPolygon(
const std::vector<Vec2>& vertices) = 0;
447 void setBlendFunc(GLenum srcFactor, GLenum dstFactor) { _srcFactor = srcFactor; _dstFactor = dstFactor; }
554 virtual std::string
toString(
bool verbose=
false)
const override;
558 #pragma mark Scaling Attributes
656 #pragma mark Rendering
680 virtual void draw(
const std::shared_ptr<SpriteBatch>& batch,
681 const Mat4& transform,
Color4 tint)
override = 0;
689 #pragma mark Internal Helpers
GLenum getDestinationBlendFactor() const
Definition: CUTexturedNode.h:475
virtual void setContentSize(float width, float height) override
Definition: CUTexturedNode.h:650
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
bool isFlipVertical() const
Definition: CUTexturedNode.h:542
virtual bool initWithData(const SceneLoader *loader, const std::shared_ptr< JsonValue > &data) override
GLenum _srcFactor
Definition: CUTexturedNode.h:109
void setBlendFunc(GLenum srcFactor, GLenum dstFactor)
Definition: CUTexturedNode.h:447
Definition: CUPoly2.h:115
bool init(const Rect &rect)
Definition: CUTexturedNode.h:203
void flipVertical(bool flag)
Definition: CUTexturedNode.h:535
const std::shared_ptr< Texture > & getTexture() const
Definition: CUTexturedNode.h:367
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:506
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:339
bool _flipVertical
Definition: CUTexturedNode.h:116
const Rect & getBoundingRect() const
Definition: CUTexturedNode.h:427
bool init(const std::vector< Vec2 > &vertices)
Definition: CUTexturedNode.h:171
GLenum getSourceBlendFactor() const
Definition: CUTexturedNode.h:461
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:269
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:524
virtual void setAnchor(const Vec2 &anchor) override
Definition: CUTexturedNode.h:619
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:399
bool _rendered
Definition: CUTexturedNode.h:102
Definition: CUSceneLoader.h:77
CU_DISALLOW_COPY_AND_ASSIGN(TexturedNode)
void setAbsolute(bool flag)
Definition: CUTexturedNode.h:591
void flipHorizontal(bool flag)
Definition: CUTexturedNode.h:517
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:574
Definition: CUAction.h:51
std::shared_ptr< Texture > & getTexture()
Definition: CUTexturedNode.h:360
void setBlendEquation(GLenum equation)
Definition: CUTexturedNode.h:492
bool initWithFile(const std::string &filename)
void refresh()
Definition: CUTexturedNode.h:686
bool _absolute
Definition: CUTexturedNode.h:97