arsa  2.7
CARSASpine.h
Go to the documentation of this file.
1 #ifndef __C_ARSA_JSON_SCENE_NODE_H__
2 #define __C_ARSA_JSON_SCENE_NODE_H__
3 
4 #include <irrlicht.h>
5 
6 namespace irr
7 {
8 
9 class IARSAInput;
10 
11 #ifndef ARSA_FRAMEWORK
12 namespace scene
13 {
14  const int ESNT_ARSA_JSON = MAKE_IRR_ID('a', 'j', 's', 'o');
15 }
16 #endif
17 
18 namespace arsa
19 {
20 
21 struct SSpine;
22 
24 {
25 public:
26  CARSASpine(scene::ISceneNode* parent, scene::ISceneManager* smgr, s32 id = -1);
27  ~CARSASpine( );
28 
29  // operations
30  virtual bool load(const io::path& skeleton_filename, const io::path& atlas_filename);
31  virtual void clear();
32  virtual void setSkin(const core::stringc& name);
33 
34  // animation
35  virtual void setAnimation(const core::stringc& name, bool loop = true, int track = 0, bool force_set = false );
36  virtual void queueAnimation(const core::stringc& name, bool loop = true, f32 delay = 0, int track = 0);
37  virtual core::stringc getCurrentAnimationName( int track=0) const;
38  virtual f32 getCurrentAnimationTime(int track = 0) const;
39  virtual f32 getCurrentAnimationTimeEnd(int track = 0) const;
40  virtual bool isExistAnimation(const core::stringc& name);
41  virtual bool isPlaying(const core::stringc& name, int track = 0);
42  virtual u32 getAnimationCount() const;
44  virtual void setSpeed(f32 speed, int track = 0); // > 1 fast, < 1 slow, 1 = normal
45  virtual f32 getSpeed(int track = 0) const;
46 
47  // bone
48  virtual bool isExistBone(const core::stringc& name);
49  virtual u32 getBoneCount() const;
50  virtual u32 getBoneName(core::array<core::stringc>& out_names);
51  virtual core::vector3df getBonePos(const core::stringc& name, bool global = true, bool TPose = false );
52  virtual bool setBonePos(const core::stringc& name, const core::vector3df& pos_world );
53  virtual bool setBoneRot(const core::stringc& name, f32 z_degree_world );
54  virtual f32 getBoneRot(const core::stringc& name, bool global = true, bool TPose = false) const;
55 
56  // transform
57  virtual void setHFlip(bool flip);
58  virtual void setVFlip(bool flip);
59  virtual bool getHFlip() const;
60  virtual bool getVFlip() const;
61  virtual void setDrawOrder(u32 order = 0); // 0 = draw first
62  virtual u32 getDrawOrder() const;
63  virtual bool isOutOfScreen() const;
64 
65  // id
66  virtual s32 getSlotId(const core::stringc& name) const;
67  virtual s32 getSlotIdByPrefix(const core::stringc& prefix) const;
68  virtual u32 getSlotIdByPrefixs(const core::stringc& prefix, core::array<s32>& out_ids) const;
69  virtual u32 getSlotCount() const;
70  virtual bool isSlotOutOfScreen(s32 id) const;
71  virtual bool isSlotIdOk(s32 id) const;
72  virtual void setSlotVisible(s32 id, bool visible);
73  virtual bool isSlotVisible(s32 id) const;
74  virtual bool setSlotManual(s32 id, bool manual);
75  virtual bool getSlotManual(s32 id) const;
76  virtual bool setSlotDrawOrder(s32 id, u32 order = 0);
77  virtual u32 getSlotDrawOrder(s32 id) const;
78  virtual bool setSlotPos(s32 id, const core::vector3df& pos_world);
79  virtual bool setSlotRot(s32 id, const core::vector3df& rot_deg);
80  virtual bool addSlotRot(s32 id, const core::vector3df& vel );
81  virtual bool setSlotScale(s32 id, const core::vector3df& scale);
82  virtual core::vector3df getSlotPos(s32 id) const;
83  virtual core::vector3df getSlotRot(s32 id) const;
84  virtual core::vector3df getSlotScale(s32 id) const;
85  virtual core::aabbox3df getSlotBBox(s32 id) const; // world space
86  virtual void setSlotColor(s32 id, const video::SColor& color);
87  virtual video::SColor getSlotColor(s32 id) const;
88 
89  // hit
90  virtual s32 hitTouch( irr::u32 touch_flag, bool hit_invisible = false) const;
91  virtual bool hitTouch(s32 id, irr::u32 touch_flag, bool hit_invisible = false) const;
92  virtual bool hitXY(s32 id, int x, int y, bool hit_invisible = false, const core::dimension2du& hitext = core::dimension2du(20, 20)) const;
93  virtual bool hitLine(s32 id, const core::line3df& line, bool hit_invisible = false) const;
94  virtual bool hitBox(s32 id, const core::aabbox3df& box, bool hit_invisible = false) const;
95 
96  virtual CARSASpine* clone(scene::ISceneNode* newParent = 0, scene::ISceneManager* newSceneManager = 0);
97  virtual void OnRegisterSceneNode();
98  virtual void OnAnimate(u32 timeMs);
99  virtual void render();
100  virtual const core::aabbox3d<f32>& getBoundingBox() const;
101  virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const;
104 
105  virtual void setUsePremultipliedAlpha(bool usePMA);
106  virtual bool getUsePremultipliedAlpha() const;
107 
108 private:
110  SSpine* Spi;
111 };
112 
113 } // end namespace arsa
114 } // end namespace irr
115 
116 #endif // __C_ARSA_JSON_SCENE_NODE_H__
117 
virtual bool getHFlip() const
GLenum GLenum GLenum GLenum GLenum scale
virtual bool setSlotPos(s32 id, const core::vector3df &pos_world)
virtual void setHFlip(bool flip)
virtual bool setBonePos(const core::stringc &name, const core::vector3df &pos_world)
virtual bool setBoneRot(const core::stringc &name, f32 z_degree_world)
virtual core::vector3df getBonePos(const core::stringc &name, bool global=true, bool TPose=false)
virtual bool getUsePremultipliedAlpha() const
virtual void setSkin(const core::stringc &name)
Provides a generic interface for attributes and their values and the possibility to serialize them.
Definition: IAttributes.h:41
virtual bool getSlotManual(s32 id) const
virtual void setDrawOrder(u32 order=0)
virtual bool isOutOfScreen() const
virtual void deserializeAttributes(io::IAttributes *in, io::SAttributeReadWriteOptions *options=0)
Reads attributes of the scene node.
virtual bool hitBox(s32 id, const core::aabbox3df &box, bool hit_invisible=false) const
float f32
32 bit floating point variable.
Definition: irrTypes.h:108
virtual CARSASpine * clone(scene::ISceneNode *newParent=0, scene::ISceneManager *newSceneManager=0)
Creates a clone of this scene node and its children.
const int ESNT_ARSA_JSON
Definition: CARSAJson.h:14
Scene node interface.
Definition: ISceneNode.h:40
virtual void setSlotColor(s32 id, const video::SColor &color)
struct holding data describing options
virtual bool isSlotOutOfScreen(s32 id) const
virtual f32 getCurrentAnimationTime(int track=0) const
virtual core::vector3df getSlotRot(s32 id) const
virtual u32 getDrawOrder() const
virtual bool isSlotIdOk(s32 id) const
virtual bool setSlotRot(s32 id, const core::vector3df &rot_deg)
GLuint const GLchar * name
Everything in the Irrlicht Engine can be found in this namespace.
Definition: CARSADPad.h:6
Main header file of the irrlicht, the only file needed to include.
GLfixed GLfixed GLint GLint order
3D line between two points with intersection methods.
Definition: line3d.h:18
virtual bool hitXY(s32 id, int x, int y, bool hit_invisible=false, const core::dimension2du &hitext=core::dimension2du(20, 20)) const
virtual bool isExistBone(const core::stringc &name)
virtual bool setSlotScale(s32 id, const core::vector3df &scale)
virtual u32 getBoneCount() const
virtual u32 getSlotIdByPrefixs(const core::stringc &prefix, core::array< s32 > &out_ids) const
virtual core::vector3df getSlotPos(s32 id) const
virtual void clear()
virtual void setSpeed(f32 speed, int track=0)
virtual s32 getSlotIdByPrefix(const core::stringc &prefix) const
virtual bool isExistAnimation(const core::stringc &name)
virtual const core::aabbox3d< f32 > & getBoundingBox() const
Get the axis aligned, not transformed bounding box of this node.
signed int s32
32 bit signed variable.
Definition: irrTypes.h:70
virtual f32 getBoneRot(const core::stringc &name, bool global=true, bool TPose=false) const
virtual bool isSlotVisible(s32 id) const
virtual bool setSlotManual(s32 id, bool manual)
virtual video::SColor getSlotColor(s32 id) const
unsigned int u32
32 bit unsigned variable.
Definition: irrTypes.h:62
virtual u32 getSlotCount() const
virtual bool isPlaying(const core::stringc &name, int track=0)
virtual s32 getSlotId(const core::stringc &name) const
virtual void setVFlip(bool flip)
GLint GLint GLint GLint GLint GLint y
Definition: SDL_opengl.h:1574
ESCENE_NODE_TYPE
An enumeration for all types of built-in scene nodes.
virtual f32 getCurrentAnimationTimeEnd(int track=0) const
virtual u32 getSlotDrawOrder(s32 id) const
virtual bool load(const io::path &skeleton_filename, const io::path &atlas_filename)
virtual u32 getAnimationName(core::array< core::stringc > &out_names)
Class representing a 32 bit ARGB color.
Definition: SColor.h:316
virtual void setAnimation(const core::stringc &name, bool loop=true, int track=0, bool force_set=false)
virtual bool addSlotRot(s32 id, const core::vector3df &vel)
virtual core::vector3df getSlotScale(s32 id) const
virtual bool hitLine(s32 id, const core::line3df &line, bool hit_invisible=false) const
virtual void OnRegisterSceneNode()
This method is called just before the rendering process of the whole scene.
The Scene Manager manages scene nodes, mesh resources, cameras and all the other stuff.
virtual bool setSlotDrawOrder(s32 id, u32 order=0)
virtual bool getVFlip() const
CARSASpine(scene::ISceneNode *parent, scene::ISceneManager *smgr, s32 id=-1)
Self reallocating template array (like stl vector) with additional features.
Definition: irrArray.h:22
GLint GLint GLint GLint GLint x
Definition: SDL_opengl.h:1574
virtual core::stringc getCurrentAnimationName(int track=0) const
virtual void render()
Renders the node.
virtual u32 getAnimationCount() const
#define MAKE_IRR_ID(c0, c1, c2, c3)
ignore VC8 warning deprecated
Definition: irrTypes.h:243
GLuint color
virtual void OnAnimate(u32 timeMs)
OnAnimate() is called just before rendering the whole scene.
virtual scene::ESCENE_NODE_TYPE getType() const
Returns type of the scene node.
Definition: CARSASpine.h:103
virtual u32 getBoneName(core::array< core::stringc > &out_names)
virtual f32 getSpeed(int track=0) const
virtual void setUsePremultipliedAlpha(bool usePMA)
virtual core::aabbox3df getSlotBBox(s32 id) const
GLuint in
virtual void serializeAttributes(io::IAttributes *out, io::SAttributeReadWriteOptions *options=0) const
Writes attributes of the scene node.
virtual void setSlotVisible(s32 id, bool visible)
virtual s32 hitTouch(irr::u32 touch_flag, bool hit_invisible=false) const
virtual void queueAnimation(const core::stringc &name, bool loop=true, f32 delay=0, int track=0)