Fission FSN
Loading...
Searching...
No Matches
fsCSpriteComponent.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 25/2/2014 13:46
4*
5* File: fsCSpriteComponent.h
6*
7* Author: Mick Waites
8*
9* Purpose: A component which renders a sprite to the display.
10*
11*********************************************************************/
12
13#ifndef fsCSpriteComponenthdr
14#define fsCSpriteComponenthdr
15
16// Needed for COLLISION_DEBUG_MESSAGES definition
18
20#include <fsCore/fsBaseTypes.h>
21
22#include "../../fsIRenderData.h"
23#include "fsISpriteComponent.h"
24
25// #define OUTLINE_RENDERING
26
27#ifdef COLLISION_DEBUG_MESSAGES
28 #define COLLISION_OUTLINE_RENDERING
29#endif
30
31class fsCSprite;
32class fsCLine;
33struct fsPoint;
34class fsSColour;
35class fsCEntity;
36class fsIComponent;
38class fsCBrush;
39class fsRect;
40
41
43{
44 friend class fsCComponentFactory;
46public:
47
48 static const fsCUniqueId mTypeId;
49
50 void polyInfoSet(fsIRenderData::fsSPolyInfo const& pPolyInfo);
51
52protected:
53
55
56 void alphaBlendSetDo(fsS32 pBlend) override;
57
58 fsBool hitTestDo(fsISpriteComponent* pOtherSprComp, fsBool pRequireHitMap) const override;
59 fsBool hitTestDo(const fsPoint& pScreenPos, fsBool pRequireHitMap) const override;
60
61 fsS32 widthGetDo() const override;
62 fsS32 heightGetDo() const override;
63
64 void colourSetDo(const fsSColour4B& pColour) override;
65
66 void widthSetDo(fsS32 pWidth, fsBool pModifyRenderData = true) override;
67 void heightSetDo(fsS32 pHeight, fsBool pModifyRenderData = true) override;
68
69 std::shared_ptr<fsCBrush> brushGetDo() const override;
70 void brushSetDo(std::shared_ptr<fsCBrush> pBrush) override;
71
72 static fsIComponent* create(fsCEntity* pParent);
73
74 void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
75 void renderDo() override;
76 void matrixApplyDo() override;
77
79 virtual ~fsCSpriteComponent();
80
81private:
82
83#ifdef COLLISION_OUTLINE_RENDERING
84 void renderDebugCollisionOutline(const fsRect& intersect, const fsSColour4B& pColour) const;
85 void renderDebugMouseOverCollisionBox() const;
86 void clearDebugCollisionOutline() const;
87#endif
88#ifdef OUTLINE_RENDERING
89 void debugOutlineUpdate() const;
90#endif
91
92 fsCSprite* mSprite;
93#ifdef OUTLINE_RENDERING
94 fsCLine* mLine;
95#endif
96
97#ifdef COLLISION_OUTLINE_RENDERING
98 fsCLine* mCollisionOutlineLine;
99#endif
100};
101
102#endif
Definition fsCBrush.h:26
Definition fsCEntity.h:39
Definition fsCLine.h:18
fsBool obscuredByBoundingBoxCheckDo(fsISpriteComponent *pOtherSprComp) override
Definition fsCSpriteComponent.cpp:31
void widthSetDo(fsS32 pWidth, fsBool pModifyRenderData=true) override
Definition fsCSpriteComponent.cpp:355
void renderDo() override
Definition fsCSpriteComponent.cpp:296
void initialiseFromVariableTableDo(const fsCVariableTable &pVars) override
Definition fsCSpriteComponent.cpp:233
friend class fsCComponentFactory
Definition fsCSpriteComponent.h:44
void brushSetDo(std::shared_ptr< fsCBrush > pBrush) override
Definition fsCSpriteComponent.cpp:320
virtual ~fsCSpriteComponent()
Definition fsCSpriteComponent.cpp:388
fsCSpriteComponent(fsCEntity *pParent)
Definition fsCSpriteComponent.cpp:376
void alphaBlendSetDo(fsS32 pBlend) override
Definition fsCSpriteComponent.cpp:335
void colourSetDo(const fsSColour4B &pColour) override
Definition fsCSpriteComponent.cpp:340
static const fsCUniqueId mTypeId
Definition fsCSpriteComponent.h:48
void polyInfoSet(fsIRenderData::fsSPolyInfo const &pPolyInfo)
Definition fsCSpriteComponent.cpp:26
void heightSetDo(fsS32 pHeight, fsBool pModifyRenderData=true) override
Definition fsCSpriteComponent.cpp:363
fsS32 heightGetDo() const override
Definition fsCSpriteComponent.cpp:350
std::shared_ptr< fsCBrush > brushGetDo() const override
Definition fsCSpriteComponent.cpp:330
fsBool hitTestDo(fsISpriteComponent *pOtherSprComp, fsBool pRequireHitMap) const override
Definition fsCSpriteComponent.cpp:135
void matrixApplyDo() override
Definition fsCSpriteComponent.cpp:307
static fsIComponent * create(fsCEntity *pParent)
Definition fsCSpriteComponent.cpp:371
fsS32 widthGetDo() const override
Definition fsCSpriteComponent.cpp:345
friend class fsCVertexStreamSpriteRenderData
Definition fsCSpriteComponent.h:45
Definition fsCSprite.h:24
Definition fsCUniqueId.h:21
Definition fsCVariableTable.h:27
Definition fsIComponent.h:26
fsIComponent(fsCEntity *pParent)
Definition fsIComponent.cpp:86
fsISpriteComponent(fsCEntity *pParent)
Definition fsISpriteComponent.cpp:60
Definition fsRect.h:16
Definition fsSColour.h:20
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
Definition fsIRenderData.h:44
Definition fsPoint.h:17
Definition fsSColour.h:54