arsa  2.7
CARSAPsd.h
Go to the documentation of this file.
1 #ifndef __C_ARSA_PSD_SCENE_NODE_H__
2 #define __C_ARSA_PSD_SCENE_NODE_H__
3 
4 #include <irrlicht.h>
5 
6 #ifdef ARSA_FRAMEWORK
7 #include "ESceneNodeTypes2.h"
8 #endif
9 
10 namespace irr
11 {
12 
13 class IARSAInput;
14 
15 #ifndef ARSA_FRAMEWORK
16 namespace scene
17 {
18  const int ESNT_ARSA_PSD = MAKE_IRR_ID('a','p','s','d');
19 }
20 #endif
21 
22 namespace arsa
23 {
24 
25 class CConstant;
26 struct SPsd;
27 struct SPsdList;
28 
30 {
31  EDF_NONE = 0,
33  EDF_TOP = 2,
35  EDF_LEFT = 8,
36  EDF_RIGHT = 16,
37  EDF_HFLIP = 32,
38  EDF_VFLIP = 64,
40 };
41 
43 {
51  //EDT_POLYGON,
52  //EDT_LAYER,
53  //EDT_STAR,
55 };
56 
58 {
59  ELF_ONCE = 2,
60  ELF_LOOP = 4,
63 };
64 
66 {
67 public:
68  CARSAPsd(scene::ISceneNode* parent, scene::ISceneManager* smgr, s32 id = -1);
69  virtual ~CARSAPsd( );
70 
71  virtual CARSAPsd* clone(scene::ISceneNode* newParent = 0, scene::ISceneManager* newSceneManager = 0);
72  virtual void OnRegisterSceneNode();
73  virtual void OnAnimate(u32 timeMs);
74  virtual void render();
75  virtual const core::aabbox3d<f32>& getBoundingBox() const;
76  virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const;
79 
80  // class operation
84  virtual bool load( const io::path& filename, bool cls = true, bool cache = true );
86  virtual bool cache(const io::path& filename, bool cache = true);
88  virtual bool merge( CARSAPsd* src );
89  virtual void clear( bool removeTex = true ); // all clean-up
90  virtual s32 addPsdLayer(const irr::core::stringc& name, irr::video::ITexture* tex, bool force_add = false);
92  virtual bool isOk() const;
93  virtual bool isPsdFile(const io::path& filename) const;
95  virtual bool isPsdQuit() const;
97  virtual void setPsdQuit(bool quit = true);
98  virtual s32 getPsdId(const core::stringc& name) const;
99  virtual s32 getPsdId(const SPsd& psd) const;
100  virtual s32 getPsdIdByPrefix(const core::stringc& prefix) const;
101  virtual u32 getPsdIdByPrefixs(const core::stringc& prefix, core::array<s32>& out_ids) const;
102  virtual u32 getPsdNameByPrefixs(const core::stringc& prefix, core::array<core::stringc>& out_names) const;
103  virtual void setOffset(const core::vector3df& offset);
104  virtual void setOffsetX(irr::f32 value );
105  virtual void setOffsetY(irr::f32 value);
106  virtual const core::vector3df& getOffset() const;
107  virtual void setMaxOffset(const core::aabbox3df& offset);
108  virtual const core::aabbox3df& getMaxOffset() const;
109  virtual void setScreenSize(const core::dimension2du& size);
110  virtual const core::dimension2du& getScreenSize() const;
111  virtual u32 getPsdCount() const;
112  virtual const core::dimension2du& getHitExtend() const;
113  virtual void setHitExtend(const core::dimension2du& ext);
114  virtual u32 getTriggerFromFunction(const core::stringc& func_name, core::array<core::stringc>& out_trigs );
115  virtual u32 getVariableFromFunction(const core::stringc& func_name, core::array<core::stringc>& out_varnames );
116  virtual bool existFunction(const core::stringc& func_name) const;
117  virtual void setFilename( const io::path& filename);
118  virtual io::path getFilename() const;
119  virtual arsa::CConstant* getConst() const;
120  virtual io::path getAbsoluteFilename() const;
121  virtual io::path getAbsolutePath() const;
122 
124  virtual void updatePsdNow( s32 id );
125  virtual void updatePsdNowAll();
126  virtual bool isIdOk(irr::s32 id) const;
127  virtual bool isPsdOutOfScreen(irr::s32 id) const;
128  virtual void play(irr::s32 id, bool playing = true, irr::s32 customframe = 0 );
129  virtual void pause(irr::s32 id);
131  virtual bool removePsd(irr::s32 id);
133  virtual s32 clonePsd(irr::s32 src_id, const core::stringc& new_name, bool force_add = false);
134  virtual core::stringc getPsdName(irr::s32 id) const;
135  virtual const SPsd& getPsd(irr::s32 id) const;
136  virtual void setPsdVisible(irr::s32 id, bool visible);
137  virtual void setPsdVisiblePrefix(const core::stringc& prefix, bool visible);
138  virtual bool isPsdVisible(irr::s32 id) const;
139  virtual void setPsdPos(irr::s32 id, f32 x, f32 y);
140  virtual void getPsdPos(irr::s32 id, f32& x, f32& y) const;
141  virtual irr::core::vector3df getPsdPos(irr::s32 id) const;
144  virtual void setPsdScale(irr::s32 id, const irr::core::vector3df& scale );
145  virtual void getPsdScale(irr::s32 id, irr::core::vector3df& out_scale ) const;
146  virtual core::dimension2du getPsdSize(irr::s32 id) const;
147  virtual void setPsdDrawType(irr::s32 id, E_DRAW_TYPE flags);
148  virtual E_DRAW_TYPE getPsdDrawType(irr::s32 id) const;
149  virtual void setPsdDrawFlags(irr::s32 id, u32 type);
150  virtual s32 getPsdDrawFlags(irr::s32 id) const;
151  virtual void setPsdRotFlags(irr::s32 id, u32 type);
152  virtual s32 getPsdRotFlags(irr::s32 id) const;
153  virtual void setPsdScaleFlags(irr::s32 id, u32 type);
154  virtual s32 getPsdScaleFlags(irr::s32 id) const;
155  virtual void setPsdVisFlags(irr::s32 id, u32 type);
156  virtual s32 getPsdVisFlags(irr::s32 id) const;
157  virtual void setPsdRot(irr::s32 id, const core::vector3df& rot);
158  virtual const core::vector3df& getPsdRot(irr::s32 id) const;
159  virtual void setPsdRotSpeed(irr::s32 id, f32 speed);
160  virtual f32 getPsdRotSpeed(irr::s32 id) const;
161  virtual void setPsdColor(irr::s32 id, const video::SColor& color);
162  virtual const irr::video::SColor& getPsdColor(irr::s32 id) const;
163  virtual const irr::video::SColor& getPsdColorTopLeft(irr::s32 id) const; // get original color layer at 0, 0 pixel
164  virtual f32 getDeltaTime() const;
166  virtual bool isPlaying(irr::s32 id) const;
167  virtual void updateBBox(irr::s32 id);
168  virtual video::ITexture* getPsdTexture(irr::s32 id) const;
169  virtual void setPsdTexture(irr::s32 id, irr::video::ITexture* tex );
171  virtual void setPsdDrawOrder(irr::s32 id, irr::u32 order);
172  virtual u32 getPsdDrawOrder(irr::s32 id) const;
173  virtual void setDrawOrder(u32 order);
175  virtual core::aabbox3df getPsdBBox(irr::s32 id) const;
177  virtual void setPsdClampPos(irr::s32 id, bool clamp );
178  virtual bool getPsdClampPos(irr::s32 id) const;
180  virtual void setPsdFrame(irr::s32 id, u32 frame);
182  virtual s32 getPsdFrame(irr::s32 id) const;
184  virtual u32 getPsdFrameCount(irr::s32 id) const;
186  virtual void setPsdLoopFlags(irr::s32 id, u32 flags);
188  virtual u32 getPsdLoopFlags(irr::s32 id) const;
190  virtual void setPsdFPS(irr::s32 id, s32 fps);
192  virtual void setPsdFPS(irr::s32 id, u32 frame, s32 fps);
194  virtual s32 getPsdFPS(irr::s32 id, u32 frame) const;
196  virtual bool isFrameOk(irr::s32 id, u32 frame) const;
197  virtual bool setPsdRef(irr::s32 id, s32 ref_id) const;
198  virtual void setPsdClipRect(irr::s32 id, const irr::core::rectf& cliprect );
199  virtual irr::core::rectf getPsdClipRect(irr::s32 id) const;
200  virtual void setPsdLayerOffset(irr::s32 id, irr::f32 offsetx, irr::f32 offsety );
201  virtual void setPsdMaterialType(irr::s32 id, irr::s32 type);
202  virtual const irr::s32 getPsdMaterialType(irr::s32 id ) const;
203  virtual void setPsdUserData(irr::s32 id, const irr::core::stringc& key, const irr::core::stringc& value );
204  virtual irr::core::stringc getPsdUserData(irr::s32 id, const irr::core::stringc& key) const;
205  virtual void removePsdUserData(irr::s32 id, const irr::core::stringc& key);
206  virtual void clearPsdUserData(irr::s32 id ); // internal used only!!!
212  virtual size_t getPsdGPUConstantSize(irr::s32 id) const;
213  virtual void clearPsdGPUConstant(irr::s32 id);
214  virtual irr::u32 addPsdFrame(irr::s32 id, irr::u32 framecount);
216  virtual void clearPsdFrame(irr::s32 id);
217  virtual void setPsdTextureFrame(irr::s32 id, irr::u32 numframe, irr::video::ITexture* tex);
218 
219  virtual int getPsdType(irr::s32 id) const;
220 
224  virtual void setPsdVisiblePercent(irr::s32 id, int perx, int pery );
227 
229  virtual void draw(irr::s32 id, const video::ITexture* tex, u32 drawflags = EDF_DEFAULT );
230  virtual void draw(irr::s32 id, f32 x, f32 y );
231 
233  virtual void drawOnce(irr::s32 id, const irr::video::ITexture* tex, u32 drawflags = EDF_DEFAULT);
234  virtual void drawOnce(irr::s32 id, irr::f32 x, irr::f32 y);
235 
238  virtual void draw2DImage(const video::ITexture* texture, const core::position2d<s32>& destPos,
239  const core::rect<s32>& sourceRect, const core::rect<s32>* clipRect =0,
240  video::SColor color=video::SColor(255,255,255,255), bool useAlphaChannelOfTexture=false);
241  virtual void draw2DImageBatch(const video::ITexture* texture,
242  const core::array<core::position2d<s32> >& positions,
243  const core::array<core::rect<s32> >& sourceRects,
244  const core::rect<s32>* clipRect=0,
245  video::SColor color=video::SColor(255,255,255,255),
246  bool useAlphaChannelOfTexture=false);
247 
248  //========================================
249  // hit
250  //========================================
251  virtual void PickupClear();
252  //virtual irr::s32 getPickupState(irr::s32 id);
253  //virtual irr::s32 getPickupLayerId() const;
254  irr::s32 getPickupState(const core::stringc& prefix);
255  const irr::core::stringc& getPickupLayerName() const;
256 
258  virtual core::stringc hitTouch(irr::u32 touch_flag, bool hit_invisible = false, int touchid = 0) const;
259  virtual bool hitTouchLayer(const core::stringc& name, irr::u32 touch_flag, bool hit_invisible = false, int touchid = 0) const;
260  virtual s32 hitTouchPrefix(const core::stringc& prefix, irr::u32 touch_flag, bool hit_invisible = false, int touchid = 0) const;
261  virtual u32 hitTouchPrefixs(const core::stringc& prefix, irr::u32 touch_flag, core::array<s32>& out_ids, bool hit_invisible = false, int touchid = 0);
262 
264  virtual core::stringc hitLayer(const core::stringc& name, bool hit_invisible = false) const;
265  virtual bool hitLayer(const core::stringc& name, const core::stringc& name2, bool hit_invisible = false) const;
266  virtual core::stringc hitLayerPrefix(const core::stringc& prefix, bool hit_invisible = false) const;
267  virtual bool hitLayerPrefix(const core::stringc& name, const core::stringc& prefix, bool hit_invisible = false) const;
268  virtual u32 hitLayerPrefixs(const core::stringc& name, const core::stringc& prefix, core::array<s32>& out_ids, bool hit_invisible = false);
269  virtual bool hitLayerPrefixWithPrefix(const core::stringc& prefix, const core::stringc& prefix2, bool hit_invisible = false) const;
270  virtual u32 hitLayerPrefixWithPrefixs(const core::stringc& prefix, const core::stringc& prefix2, core::array<s32>& out_ids, bool hit_invisible = false);
271 
273  virtual s32 hitId(irr::s32 id, bool hit_invisible = false) const;
274  virtual u32 hitId(irr::s32 id, core::array<s32>& out_ids, bool hit_invisible = false);
275  virtual s32 hitIdPrefix(irr::s32 id, const core::stringc& prefix, bool hit_invisible = false) const;
276  virtual u32 hitIdPrefixs(irr::s32 id, const core::stringc& prefix, core::array<s32>& out_ids, bool hit_invisible = false);
277 
279  virtual bool hitXYId(int x, int y, s32 id, bool hit_invisible = false) const;
280  virtual bool hitXYLayer(int x, int y, const core::stringc& name, bool hit_invisible = false) const;
281  virtual int hitXY(int x, int y, bool hit_invisible = false) const;
282  virtual u32 hitXYs(int x, int y, core::array<s32>& out_ids, bool hit_invisible = false);
283  virtual s32 hitXYPrefix(int x, int y, const core::stringc& prefix, bool hit_invisible = false) const;
284  virtual u32 hitXYPrefixs(int x, int y, const core::stringc& prefix, core::array<s32>& out_ids, bool hit_invisible = false);
285 
287  virtual bool hitLine(const core::line3df& line, s32 id, bool hit_invisible = false) const;
288  virtual int hitLine(const core::line3df& line, bool hit_invisible = false) const;
289  virtual u32 hitLine(const core::line3df& line, core::array<s32>& out_ids, bool hit_invisible = false);
290 
292  virtual bool hitBox(const core::aabbox3df& box, s32 id, bool hit_invisible = false) const;
293 
295  static bool hitPsd(const SPsd& a, const SPsd& b, bool hit_invisible = false);
296  static bool hitXY(const SPsd& a, int x, int y, const core::dimension2du& screensize, const core::dimension2du& hitext, bool hit_invisible = false);
297  static bool hitLine(const SPsd& a, const core::line3df& line, const core::dimension2du& screensize, bool hit_invisible = false);
298  static bool hitBox(const SPsd& a, const core::aabbox3df& box, const core::dimension2du& screensize, bool hit_invisible = false);
299 
300  //========================================
301  // deprecate hit
302  //========================================
304  static bool hit( const SPsd& a, const SPsd& b, bool hit_invisible = false );
305  static bool hit( const SPsd& a, int x, int y, const core::dimension2du& screensize, const core::dimension2du& hitext, bool hit_invisible = false );
306  static bool hit( const SPsd& a, const core::line3df& line, const core::dimension2du& screensize, bool hit_invisible = false );
307  static bool hit( const SPsd& a, const core::aabbox3df& box, const core::dimension2du& screensize, bool hit_invisible = false );
308 
310  virtual bool hit(int x, int y, s32 id, bool hit_invisible = false) const;
311  virtual bool hit( int x, int y, const core::stringc& name, bool hit_invisible = false ) const;
312  virtual int hit( int x, int y, bool hit_invisible = false ) const;
313  virtual u32 hit( int x, int y, core::array<s32>& out_ids, bool hit_invisible = false );
314 
316  virtual int hit(irr::s32 id, bool hit_invisible = false) const;
317  virtual int hit( const SPsd& a, bool hit_invisible = false ) const;
318  virtual u32 hit( const SPsd& a, core::array<s32>& out_ids, bool hit_invisible = false );
319 
321  virtual bool hit(const core::line3df& line, s32 id, bool hit_invisible = false) const;
322  virtual int hit( const core::line3df& line, bool hit_invisible = false ) const;
323  virtual u32 hit( const core::line3df& line, core::array<s32>& out_ids, bool hit_invisible = false );
324 
326  virtual bool hit(const core::aabbox3df& box, s32 id, bool hit_invisible = false) const;
327 
329  virtual s32 addGroup( const core::stringc& group_name );
330  virtual s32 getGroupId(const core::stringc& group_name);
331  virtual s32 getGroupIdByPrefix(const core::stringc& prefix) const;
332  virtual u32 getGroupIdByPrefixs(const core::stringc& prefix, core::array<s32>& out_group_ids) const;
333  virtual u32 getGroupCount();
334  virtual irr::core::stringc getGroupNameById(irr::s32 group_id);
335  virtual u32 addElement(irr::s32 group_id, s32 psd_id);
336  virtual void removeElement(irr::s32 group_id, s32 psd_id);
337  virtual s32 getElementId(irr::s32 group_id, s32 psd_id) const;
338  virtual s32 getElementPsdIdById(irr::s32 group_id, s32 num) const;
339  virtual u32 getElementCount(irr::s32 group_id) const;
340  virtual void setGroupPos(irr::s32 group_id, f32 x, f32 y);
341  virtual void setGroupScale(irr::s32 group_id, const irr::core::vector3df& scale);
342  virtual void setGroupVisible(irr::s32 group_id, bool visible = true);
343  virtual void setGroupVisibleOnlyOne(irr::s32 group_id, s32 psd_id, bool only_one_visible = true );
344  virtual void setGroupPlay(irr::s32 group_id, bool playing = true);
345  virtual void setGroupPlayOnlyOne(irr::s32 group_id, s32 psd_id, bool only_one_playing = true);
346  virtual void setGroupDrawFlags(irr::s32 group_id, u32 flags);
347  virtual void setGroupRotFlags(irr::s32 group_id, u32 flags);
348  virtual void setGroupScaleFlags(irr::s32 group_id, u32 flags);
349  virtual void setGroupVisFlags(irr::s32 group_id, u32 flags);
350  virtual void setGroupColor(irr::s32 group_id, const video::SColor& color);
351  virtual void setGroupRot(irr::s32 group_id, const core::vector3df& rot);
352  virtual void setGroupRotSpeed(irr::s32 group_id, f32 speed);
353  virtual void setGroupClampPos(irr::s32 group_id, bool clamp);
354  virtual void setGroupDrawOrder(irr::s32 group_id, u32 order);
355  virtual void setGroupClipRect(irr::s32 group_id, const irr::core::rectf& cliprect);
356  virtual bool isGroupExistId(irr::s32 group_id, s32 psd_id) const;
357  virtual bool isGroupIdOk(irr::s32 group_id) const;
358  virtual bool isGroupPlay(irr::s32 group_id) const;
359 
361  virtual void animClearAll();
362  virtual void animClear(irr::s32 id);
363  virtual void animResetAll();
364  virtual void animReset(irr::s32 id);
365  virtual u32 animGetCount(irr::s32 id) const;
366  virtual void animAddFade(irr::s32 id, irr::u32 start = 0, irr::u32 end = 255, irr::u32 vel = 300, bool wait = true, bool reset = true);
367  virtual void animAddScale(irr::s32 id, const irr::core::vector3df& start = irr::core::vector3df(1), const irr::core::vector3df& end = irr::core::vector3df(1), const irr::core::vector3df& vel = irr::core::vector3df(3), bool wait = true, bool reset = true);
368  virtual void animAddRot(irr::s32 id, const irr::core::vector3df& start = irr::core::vector3df(1), const irr::core::vector3df& end = irr::core::vector3df(1), const irr::core::vector3df& vel = irr::core::vector3df(300), bool wait = true, bool reset = true);
369  virtual void animAddMove(irr::s32 id, const irr::core::vector3df& start = irr::core::vector3df(0), const irr::core::vector3df& end = irr::core::vector3df(100), const irr::core::vector3df& vel = irr::core::vector3df(300), bool wait = true, bool reset = true);
370  virtual void animAddVisible(irr::s32 id, const irr::core::vector3df& start = irr::core::vector3df(100), const irr::core::vector3df& end = irr::core::vector3df(100), const irr::core::vector3df& vel = irr::core::vector3df(3), bool wait = true, bool reset = true);
371  virtual void animAddDelay(irr::s32 id, irr::f32 delay_sec, bool wait = true);
372  virtual void animAddAV(irr::s32 id, const irr::io::path& filename, bool wait = true);
373  virtual void animAddOffset(irr::s32 id, const irr::core::vector3df& start = irr::core::vector3df(0), const irr::core::vector3df& end = irr::core::vector3df(100), const irr::core::vector3df& vel = irr::core::vector3df(300), bool wait = true, bool reset = true);
374  virtual void animSetLoop(irr::s32 id, irr::u32 start = 0, irr::u32 end = 0, irr::s32 count = 0);
375  // 2023_10_19 added by oil
377  virtual bool animIsEndAll(irr::s32 id);
378 
380  virtual void batAdd(irr::f32 sec, const irr::core::stringc& psd_func);
381  virtual void batPlay(bool play = true);
382  virtual void batStop();
383  virtual void batClear();
384  virtual void batReset();
385  virtual u32 batGetCount() const;
386  virtual bool batRemove( u32 id );
387  virtual bool batIsOk() const;
388 
390  virtual s32 getMaterialType() const;
391 
393  virtual bool loadTrigger(const io::path& filename, bool clear = true);
394  virtual bool loadTrigger(io::IReadFile* fp, bool clear = true);
395  virtual bool loadTrigger(const core::array<core::stringc>& streams, bool clear = true, const irr::io::path& filename = irr::io::path("built-in"));
396  virtual bool callTriggerFunction(const core::stringc& func);
397  virtual bool callTrigger(const core::stringc& script_str );
398  virtual void clearTrigger();
399  virtual io::path getTriggerFilename() const;
402  virtual bool getTriggerError() const;
403 
406  virtual SPsd* allocatePsd();
408  virtual void freePsd(SPsd** dead);
409 
412  virtual irr::scene::IMeshBuffer* getMeshBuffer(const SPsd& psd) const;
413 
416  virtual irr::core::stringc addPointer(void* pointer);
419  virtual bool removePointer(const irr::core::stringc& guid);
421  void clearPointer();
423  virtual irr::u32 getPointerCount() const;
425  virtual void* getPointer(const irr::core::stringc& guid) const;
427  virtual void setPointer(const irr::core::stringc& guid, void* pointer);
429  virtual SPsdList* getPsdList() const { return PsdList; }
430  virtual irr::u32 getLayerCount() const;
431  virtual irr::u32 getLayerNum() const;
432 
433  // internal use only
434  virtual void gpuUpload();
435  s32 addPsd(const SPsd& psd, bool force_add = false, irr::s32 start = -1 ); // internal call only
436  //bool getArefPsd(const void *psd_layer, const irr::core::stringc& layer_name, irr::arsa::SPsd& out_psd);
437 
438  // util for external used
439  void HitLayerClear();
441  bool HitLayerRemove(const irr::core::stringc& name1, const irr::core::stringc& name2);
442  bool HitLayerAdd(const irr::core::stringc& name1, const irr::core::stringc& name2);
443 
444 private:
445  SPsdList* PsdList;
446 
447  void updatePsd(SPsd& psd);
448  void drawPsd( const SPsd& psd);
449 
451  void addQueueRendering(irr::s32 id);
452 
453 };
454 
455 } // end namespace arsa
456 } // end namespace irr
457 
458 #endif // __C_ARSA_PSD_SCENE_NODE_H__
459 
const int ESNT_ARSA_PSD
Definition: CARSAPsd.h:18
GLenum GLenum GLenum GLenum GLenum scale
virtual void setGroupRotFlags(irr::s32 group_id, u32 flags)
virtual void updatePsdNowAll()
virtual s32 hitId(irr::s32 id, bool hit_invisible=false) const
hit by id
CARSAPsd(scene::ISceneNode *parent, scene::ISceneManager *smgr, s32 id=-1)
virtual io::path getTriggerFilename() const
virtual void setPsdClampPos(irr::s32 id, bool clamp)
clamp psd pos in maxoffset range.
virtual void animClearAll()
anim
virtual void setGroupScale(irr::s32 group_id, const irr::core::vector3df &scale)
virtual void animAddOffset(irr::s32 id, const irr::core::vector3df &start=irr::core::vector3df(0), const irr::core::vector3df &end=irr::core::vector3df(100), const irr::core::vector3df &vel=irr::core::vector3df(300), bool wait=true, bool reset=true)
virtual void gpuUpload()
virtual s32 getPsdDrawFlags(irr::s32 id) const
virtual void setDrawOrder(u32 order)
virtual s32 hitTouchPrefix(const core::stringc &prefix, irr::u32 touch_flag, bool hit_invisible=false, int touchid=0) const
virtual s32 getPsdVisFlags(irr::s32 id) const
Provides a generic interface for attributes and their values and the possibility to serialize them.
Definition: IAttributes.h:41
GLuint num
Interface providing read access to a file.
Definition: IReadFile.h:18
virtual void updateBBox(irr::s32 id)
virtual void setPsdDrawType(irr::s32 id, E_DRAW_TYPE flags)
virtual const core::aabbox3d< f32 > & getBoundingBox() const
Get the axis aligned, not transformed bounding box of this node.
bool HitLayerAdd(const irr::core::stringc &name1, const irr::core::stringc &name2)
virtual void setGroupVisible(irr::s32 group_id, bool visible=true)
virtual bool hitXYId(int x, int y, s32 id, bool hit_invisible=false) const
hit by x, y from touch, mouse or any axis
virtual arsa::CConstant * getConst() const
virtual void batReset()
virtual bool isPsdQuit() const
quit is just only signal for user do something, have no effect the framework
float f32
32 bit floating point variable.
Definition: irrTypes.h:108
static bool hitPsd(const SPsd &a, const SPsd &b, bool hit_invisible=false)
hit by psd object
virtual E_DRAW_TYPE getPsdDrawType(irr::s32 id) const
GLuint GLuint GLsizei count
Definition: SDL_opengl.h:1571
virtual SPsd * allocatePsd()
virtual bool existFunction(const core::stringc &func_name) const
bool HitLayerRemove(const irr::core::stringc &name1, const irr::core::stringc &name2)
virtual const SPsd & getPsd(irr::s32 id) const
virtual void PickupClear()
virtual int hitXY(int x, int y, bool hit_invisible=false) const
virtual bool setPsdRef(irr::s32 id, s32 ref_id) const
virtual void drawOnce(irr::s32 id, const irr::video::ITexture *tex, u32 drawflags=EDF_DEFAULT)
draw immediately and directly to screen, with begin and end function
GLuint GLuint end
Definition: SDL_opengl.h:1571
virtual void draw(irr::s32 id, const video::ITexture *tex, u32 drawflags=EDF_DEFAULT)
draw psd maybe use together a new render target, drawflags is E_DRAW_FLAGS
virtual irr::core::vector2di getPsdVisiblePercent(irr::s32 id) const
get psd layer visible area by percent
GLenum GLenum GLuint texture
virtual void setGroupDrawFlags(irr::s32 group_id, u32 flags)
virtual bool batIsOk() const
virtual bool hitLine(const core::line3df &line, s32 id, bool hit_invisible=false) const
hit by line
Scene node interface.
Definition: ISceneNode.h:40
virtual u32 hitXYPrefixs(int x, int y, const core::stringc &prefix, core::array< s32 > &out_ids, bool hit_invisible=false)
virtual void * getPointer(const irr::core::stringc &guid) const
get pointer for arsa script
virtual u32 hitLayerPrefixWithPrefixs(const core::stringc &prefix, const core::stringc &prefix2, core::array< s32 > &out_ids, bool hit_invisible=false)
virtual void removePsdUserData(irr::s32 id, const irr::core::stringc &key)
virtual void serializeAttributes(io::IAttributes *out, io::SAttributeReadWriteOptions *options=0) const
Writes attributes of the scene node.
virtual bool isPsdOutOfScreen(irr::s32 id) const
virtual void setPsdQuit(bool quit=true)
quit is just only signal for user do something, have no effect the framework
virtual void removeElement(irr::s32 group_id, s32 psd_id)
struct holding data describing options
virtual s32 addGroup(const core::stringc &group_name)
group
virtual void setGroupScaleFlags(irr::s32 group_id, u32 flags)
virtual void setGroupVisFlags(irr::s32 group_id, u32 flags)
virtual bool getTriggerError() const
virtual void draw2DImage(const video::ITexture *texture, const core::position2d< s32 > &destPos, const core::rect< s32 > &sourceRect, const core::rect< s32 > *clipRect=0, video::SColor color=video::SColor(255, 255, 255, 255), bool useAlphaChannelOfTexture=false)
virtual void setOffsetY(irr::f32 value)
virtual core::stringc getPsdName(irr::s32 id) const
virtual CARSAPsd * clone(scene::ISceneNode *newParent=0, scene::ISceneManager *newSceneManager=0)
Creates a clone of this scene node and its children.
virtual video::ITexture * getPsdTexture(irr::s32 id) const
virtual void clearPsdUserData(irr::s32 id)
virtual const core::dimension2du & getHitExtend() const
virtual void setPsdLayerOffset(irr::s32 id, irr::f32 offsetx, irr::f32 offsety)
virtual const irr::s32 getPsdMaterialType(irr::s32 id) const
GLuint start
Definition: SDL_opengl.h:1571
virtual void setGroupClipRect(irr::s32 group_id, const irr::core::rectf &cliprect)
virtual void animReset(irr::s32 id)
virtual void setPsdRotSpeed(irr::s32 id, f32 speed)
GLuint const GLchar * name
virtual io::path getFilename() const
virtual u32 hitIdPrefixs(irr::s32 id, const core::stringc &prefix, core::array< s32 > &out_ids, bool hit_invisible=false)
virtual const core::vector3df & getPsdRot(irr::s32 id) const
virtual void setHitExtend(const core::dimension2du &ext)
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.
virtual f32 getPsdRotSpeed(irr::s32 id) const
irr::s32 getPickupState(const core::stringc &prefix)
virtual s32 hitXYPrefix(int x, int y, const core::stringc &prefix, bool hit_invisible=false) const
virtual irr::scene::IMeshBuffer * getMeshBuffer(const SPsd &psd) const
GLfixed GLfixed GLint GLint order
3D line between two points with intersection methods.
Definition: line3d.h:18
virtual void setPsdColor(irr::s32 id, const video::SColor &color)
virtual u32 getTriggerFromFunction(const core::stringc &func_name, core::array< core::stringc > &out_trigs)
GLsizeiptr size
virtual bool getPsdFromTexture(SPsd &out, irr::video::ITexture *tex, f32 x=0, f32 y=0, irr::core::vector3df rot=irr::core::vector3df(), irr::core::vector3df scale=irr::core::vector3df(1), irr::u32 draworder=0)
get psd from texture with pos, rot and scale
virtual irr::core::vector3df getPsdPosOutScreen(irr::s32 id, irr::u32 flags) const
virtual void animAddAV(irr::s32 id, const irr::io::path &filename, bool wait=true)
GLsizei const void * pointer
virtual void animAddDelay(irr::s32 id, irr::f32 delay_sec, bool wait=true)
virtual void setGroupRot(irr::s32 group_id, const core::vector3df &rot)
virtual s32 getGroupId(const core::stringc &group_name)
virtual void animClear(irr::s32 id)
virtual void setPsdMaterialType(irr::s32 id, irr::s32 type)
virtual f32 getDeltaTime() const
virtual void setPsdPos(irr::s32 id, f32 x, f32 y)
virtual s32 getPsdId(const core::stringc &name) const
virtual s32 getMaterialType() const
get material id from shader program
GLenum clamp
virtual void setPsdVisiblePercent(irr::s32 id, int perx, int pery)
virtual void setPsdUserData(irr::s32 id, const irr::core::stringc &key, const irr::core::stringc &value)
virtual void setPsdFPS(irr::s32 id, s32 fps)
set fps to all frame, has effect at next frame
virtual bool isIdOk(irr::s32 id) const
virtual bool load(const io::path &filename, bool cls=true, bool cache=true)
virtual bool animIsEndAll(irr::s32 id)
isendall
virtual bool loadTrigger(const io::path &filename, bool clear=true)
trigger loading independency with psd
virtual void batPlay(bool play=true)
virtual u32 hitTouchPrefixs(const core::stringc &prefix, irr::u32 touch_flag, core::array< s32 > &out_ids, bool hit_invisible=false, int touchid=0)
virtual void setPsdTexClamp(irr::s32 id, irr::video::E_TEXTURE_CLAMP value)
virtual void draw2DImageBatch(const video::ITexture *texture, const core::array< core::position2d< s32 > > &positions, const core::array< core::rect< s32 > > &sourceRects, const core::rect< s32 > *clipRect=0, video::SColor color=video::SColor(255, 255, 255, 255), bool useAlphaChannelOfTexture=false)
virtual void setPsdGPUConstant(irr::s32 id, const irr::video::IVideoDriver::SShaderConstant &value)
virtual irr::video::E_TEXTURE_CLAMP getPsdTexClamp(irr::s32 id) const
virtual s32 getPsdFPS(irr::s32 id, u32 frame) const
return fps by frame
virtual void clearTrigger()
virtual void animAddRot(irr::s32 id, const irr::core::vector3df &start=irr::core::vector3df(1), const irr::core::vector3df &end=irr::core::vector3df(1), const irr::core::vector3df &vel=irr::core::vector3df(300), bool wait=true, bool reset=true)
signed int s32
32 bit signed variable.
Definition: irrTypes.h:70
GLboolean reset
virtual u32 getGroupCount()
Struct for holding a mesh with a single material.
Definition: IMeshBuffer.h:39
virtual void pause(irr::s32 id)
irr::s32 HitLayerIsAdded(const irr::core::stringc &name1, const irr::core::stringc &name2)
virtual void setPsdRot(irr::s32 id, const core::vector3df &rot)
virtual void clearPsdGPUConstant(irr::s32 id)
virtual void setPsdVisiblePrefix(const core::stringc &prefix, bool visible)
GLsizei const GLfloat * value
virtual io::path getAbsoluteFilename() const
virtual void getPsdPos(irr::s32 id, f32 &x, f32 &y) const
virtual void getPsdScale(irr::s32 id, irr::core::vector3df &out_scale) const
virtual bool hitBox(const core::aabbox3df &box, s32 id, bool hit_invisible=false) const
hit by box
virtual core::stringc hitLayer(const core::stringc &name, bool hit_invisible=false) const
hit by layer name, call over hitIdxxx
unsigned int u32
32 bit unsigned variable.
Definition: irrTypes.h:62
virtual void setMaxOffset(const core::aabbox3df &offset)
virtual void setPsdClipRect(irr::s32 id, const irr::core::rectf &cliprect)
virtual bool hitXYLayer(int x, int y, const core::stringc &name, bool hit_invisible=false) const
virtual void clear(bool removeTex=true)
virtual void setPsdVisible(irr::s32 id, bool visible)
virtual void setFilename(const io::path &filename)
virtual void setGroupClampPos(irr::s32 group_id, bool clamp)
virtual void setOffsetX(irr::f32 value)
virtual void animSetLoop(irr::s32 id, irr::u32 start=0, irr::u32 end=0, irr::s32 count=0)
virtual s32 clonePsd(irr::s32 src_id, const core::stringc &new_name, bool force_add=false)
just only clone data, no clone texture
virtual bool isGroupIdOk(irr::s32 group_id) const
virtual u32 hitLayerPrefixs(const core::stringc &name, const core::stringc &prefix, core::array< s32 > &out_ids, bool hit_invisible=false)
virtual u32 batGetCount() const
GLint GLint GLint GLint GLint GLint y
Definition: SDL_opengl.h:1574
virtual void updatePsdNow(s32 id)
function used id
virtual void setGroupPos(irr::s32 group_id, f32 x, f32 y)
E_DRAW_FLAGS
Definition: CARSAPsd.h:29
virtual void setPsdDrawFlags(irr::s32 id, u32 type)
virtual void setPointer(const irr::core::stringc &guid, void *pointer)
set pointer for arsa script
virtual bool isGroupPlay(irr::s32 group_id) const
virtual const irr::video::SColor & getPsdColor(irr::s32 id) const
virtual bool isPlaying(irr::s32 id) const
is animation playing
virtual void setGroupVisibleOnlyOne(irr::s32 group_id, s32 psd_id, bool only_one_visible=true)
ESCENE_NODE_TYPE
An enumeration for all types of built-in scene nodes.
virtual irr::u32 addPsdFrame(irr::s32 id, irr::u32 framecount)
virtual core::dimension2du getPsdSize(irr::s32 id) const
virtual void batStop()
s32 addPsd(const SPsd &psd, bool force_add=false, irr::s32 start=-1)
virtual void batAdd(irr::f32 sec, const irr::core::stringc &psd_func)
bat
virtual bool isOk() const
query psd file loaded
virtual u32 getVariableFromFunction(const core::stringc &func_name, core::array< core::stringc > &out_varnames)
virtual irr::core::stringc getGroupNameById(irr::s32 group_id)
virtual bool merge(CARSAPsd *src)
merge psd from src, MUST drop or remove src after merge.
virtual u32 getPsdLoopFlags(irr::s32 id) const
return animate loop flags
Class representing a 32 bit ARGB color.
Definition: SColor.h:316
virtual void setPsdDrawOrder(irr::s32 id, irr::u32 order)
virtual irr::u32 getPointerCount() const
get pointer list size
virtual void setPsdScale(irr::s32 id, const irr::core::vector3df &scale)
virtual s32 getPsdRotFlags(irr::s32 id) const
virtual bool isPsdVisible(irr::s32 id) const
virtual scene::ESCENE_NODE_TYPE getType() const
Returns type of the scene node.
Definition: CARSAPsd.h:78
virtual u32 getElementCount(irr::s32 group_id) const
virtual bool isGroupExistId(irr::s32 group_id, s32 psd_id) const
virtual bool removePsd(irr::s32 id)
just only remove data, no remove texture
virtual u32 getPsdCount() const
virtual void setPsdLoopFlags(irr::s32 id, u32 flags)
animate loop flags, E_LOOP_FLAG
GLintptr offset
The Scene Manager manages scene nodes, mesh resources, cameras and all the other stuff.
virtual void animAddMove(irr::s32 id, const irr::core::vector3df &start=irr::core::vector3df(0), const irr::core::vector3df &end=irr::core::vector3df(100), const irr::core::vector3df &vel=irr::core::vector3df(300), bool wait=true, bool reset=true)
virtual irr::core::rectf getPsdClipRect(irr::s32 id) const
virtual io::path getAbsolutePath() const
GLenum func
void clearPointer()
clear the pointer, !!!internal use only!!!
virtual int getPsdType(irr::s32 id) const
GLboolean GLboolean GLboolean b
virtual irr::core::stringc getPsdUserData(irr::s32 id, const irr::core::stringc &key) const
virtual void clearPsdFrame(irr::s32 id)
clear all animation frames and reset to static sprite
virtual void animAddVisible(irr::s32 id, const irr::core::vector3df &start=irr::core::vector3df(100), const irr::core::vector3df &end=irr::core::vector3df(100), const irr::core::vector3df &vel=irr::core::vector3df(3), bool wait=true, bool reset=true)
virtual u32 addElement(irr::s32 group_id, s32 psd_id)
virtual void setPsdRotFlags(irr::s32 id, u32 type)
2d vector template class with lots of operators and methods.
Definition: dimension2d.h:16
GLint GLint GLint GLint GLint x
Definition: SDL_opengl.h:1574
virtual void setOffset(const core::vector3df &offset)
virtual const core::aabbox3df & getMaxOffset() const
virtual void setGroupPlayOnlyOne(irr::s32 group_id, s32 psd_id, bool only_one_playing=true)
virtual core::stringc hitLayerPrefix(const core::stringc &prefix, bool hit_invisible=false) const
virtual void animAddFade(irr::s32 id, irr::u32 start=0, irr::u32 end=255, irr::u32 vel=300, bool wait=true, bool reset=true)
virtual void animAddScale(irr::s32 id, const irr::core::vector3df &start=irr::core::vector3df(1), const irr::core::vector3df &end=irr::core::vector3df(1), const irr::core::vector3df &vel=irr::core::vector3df(3), bool wait=true, bool reset=true)
virtual s32 getGroupIdByPrefix(const core::stringc &prefix) const
#define MAKE_IRR_ID(c0, c1, c2, c3)
ignore VC8 warning deprecated
Definition: irrTypes.h:243
virtual void batClear()
virtual void setScreenSize(const core::dimension2du &size)
virtual void play(irr::s32 id, bool playing=true, irr::s32 customframe=0)
virtual void deserializeAttributes(io::IAttributes *in, io::SAttributeReadWriteOptions *options=0)
Reads attributes of the scene node.
virtual bool getPsdClampPos(irr::s32 id) const
GLuint color
virtual const core::dimension2du & getScreenSize() const
virtual void setPsdTexture(irr::s32 id, irr::video::ITexture *tex)
virtual bool callTriggerFunction(const core::stringc &func)
virtual irr::u32 getLayerCount() const
Interface of a Video Driver dependent Texture.
Definition: ITexture.h:177
static bool hit(const SPsd &a, const SPsd &b, bool hit_invisible=false)
hit static
virtual const irr::video::IVideoDriver::SShaderConstant * getPsdGPUConstant(irr::s32 id, const irr::core::stringc &key) const
virtual bool removePointer(const irr::core::stringc &guid)
virtual irr::u32 getLayerNum() const
GLuint GLuint GLsizei GLenum type
Definition: SDL_opengl.h:1571
virtual void render()
Renders the node.
virtual s32 getElementPsdIdById(irr::s32 group_id, s32 num) const
GLbitfield flags
virtual const core::vector3df & getOffset() const
GLboolean GLboolean GLboolean GLboolean a
virtual void animResetAll()
virtual u32 getPsdIdByPrefixs(const core::stringc &prefix, core::array< s32 > &out_ids) const
virtual core::aabbox3df getPsdBBox(irr::s32 id) const
return as world space.
virtual bool isPsdFile(const io::path &filename) const
virtual bool isFrameOk(irr::s32 id, u32 frame) const
check this frame ok or exist in psd layer
virtual u32 getPsdDrawOrder(irr::s32 id) const
virtual void freePsd(SPsd **dead)
free psd, use only SPsd came from allocatePsd()
virtual s32 getElementId(irr::s32 group_id, s32 psd_id) const
virtual void setPsdTextureFrame(irr::s32 id, irr::u32 numframe, irr::video::ITexture *tex)
virtual s32 addPsdLayer(const irr::core::stringc &name, irr::video::ITexture *tex, bool force_add=false)
virtual bool hitTouchLayer(const core::stringc &name, irr::u32 touch_flag, bool hit_invisible=false, int touchid=0) const
virtual bool callTrigger(const core::stringc &script_str)
virtual void OnAnimate(u32 timeMs)
OnAnimate() is called just before rendering the whole scene.
virtual void setGroupDrawOrder(irr::s32 group_id, u32 order)
virtual u32 getPsdNameByPrefixs(const core::stringc &prefix, core::array< core::stringc > &out_names) const
virtual irr::core::stringc addPointer(void *pointer)
GLuint in
virtual u32 getGroupIdByPrefixs(const core::stringc &prefix, core::array< s32 > &out_group_ids) const
virtual size_t getPsdGPUConstantSize(irr::s32 id) const
virtual void OnRegisterSceneNode()
This method is called just before the rendering process of the whole scene.
GLenum src
virtual SPsdList * getPsdList() const
get pointer of psd list, internal used
Definition: CARSAPsd.h:429
virtual void setGroupColor(irr::s32 group_id, const video::SColor &color)
virtual core::stringc hitTouch(irr::u32 touch_flag, bool hit_invisible=false, int touchid=0) const
hit by touch with layer name
virtual u32 getPsdFrameCount(irr::s32 id) const
total animate frame.
virtual u32 animGetCount(irr::s32 id) const
virtual void setGroupPlay(irr::s32 group_id, bool playing=true)
virtual bool batRemove(u32 id)
E_TEXTURE_CLAMP
Texture coord clamp mode outside [0.0, 1.0].
virtual bool hitLayerPrefixWithPrefix(const core::stringc &prefix, const core::stringc &prefix2, bool hit_invisible=false) const
virtual s32 getPsdIdByPrefix(const core::stringc &prefix) const
virtual void setPsdFrame(irr::s32 id, u32 frame)
set animate frame.
virtual s32 hitIdPrefix(irr::s32 id, const core::stringc &prefix, bool hit_invisible=false) const
virtual void setPsdVisFlags(irr::s32 id, u32 type)
virtual const irr::video::SColor & getPsdColorTopLeft(irr::s32 id) const
virtual u32 hitXYs(int x, int y, core::array< s32 > &out_ids, bool hit_invisible=false)
virtual irr::core::vector3df getPsdPosOriginal(irr::s32 id) const
virtual s32 getPsdScaleFlags(irr::s32 id) const
virtual void setPsdTextureLayer(irr::s32 id, irr::u32 num, irr::video::ITexture *tex)
const irr::core::stringc & getPickupLayerName() const
virtual bool cache(const io::path &filename, bool cache=true)
cache every things in software memory, safe thread
virtual void setPsdScaleFlags(irr::s32 id, u32 type)
virtual void setGroupRotSpeed(irr::s32 group_id, f32 speed)
virtual s32 getPsdFrame(irr::s32 id) const
return > -1 is animate psd, otherwise is static psd.