1 #ifndef __C_ARSA_PSD_SCENE_NODE_H__ 2 #define __C_ARSA_PSD_SCENE_NODE_H__ 7 #include "ESceneNodeTypes2.h" 15 #ifndef ARSA_FRAMEWORK 84 virtual bool load(
const io::path& filename,
bool cls =
true,
bool cache =
true );
89 virtual void clear(
bool removeTex =
true );
92 virtual bool isOk()
const;
119 virtual arsa::CConstant*
getConst()
const;
242 const core::array<core::position2d<s32> >& positions,
246 bool useAlphaChannelOfTexture=
false);
279 virtual bool hitXYId(
int x,
int y,
s32 id,
bool hit_invisible =
false)
const;
281 virtual int hitXY(
int x,
int y,
bool hit_invisible =
false)
const;
295 static bool hitPsd(
const SPsd&
a,
const SPsd&
b,
bool hit_invisible =
false);
304 static bool hit(
const SPsd&
a,
const SPsd&
b,
bool hit_invisible =
false );
310 virtual bool hit(
int x,
int y,
s32 id,
bool hit_invisible =
false)
const;
312 virtual int hit(
int x,
int y,
bool hit_invisible =
false )
const;
316 virtual int hit(
irr::s32 id,
bool hit_invisible =
false)
const;
317 virtual int hit(
const SPsd&
a,
bool hit_invisible =
false )
const;
322 virtual int hit(
const core::line3df& line,
bool hit_invisible =
false )
const;
408 virtual void freePsd(SPsd** dead);
447 void updatePsd(SPsd& psd);
448 void drawPsd(
const SPsd& psd);
451 void addQueueRendering(
irr::s32 id);
458 #endif // __C_ARSA_PSD_SCENE_NODE_H__
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 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.
Interface providing read access to a file.
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 bool isPsdQuit() const
quit is just only signal for user do something, have no effect the framework
float f32
32 bit floating point variable.
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
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
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
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
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.
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.
virtual void setPsdColor(irr::s32 id, const video::SColor &color)
virtual u32 getTriggerFromFunction(const core::stringc &func_name, core::array< core::stringc > &out_trigs)
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
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.
virtual u32 getGroupCount()
Struct for holding a mesh with a single material.
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.
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
virtual void updatePsdNow(s32 id)
function used id
virtual void setGroupPos(irr::s32 group_id, f32 x, f32 y)
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
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.
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.
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
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
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.
GLint GLint GLint GLint GLint x
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
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
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.
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
virtual void render()
Renders the node.
virtual s32 getElementPsdIdById(irr::s32 group_id, s32 num) const
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)
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.
virtual SPsdList * getPsdList() const
get pointer of psd list, internal used
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.