/********************************************************************
*
* File: fsCNative3dSprite.h
*
* Purpose: cocos2d-x implementation of 3d sprite.
*
* left hand rule, thumb up, index right, middle towards
* x - right
* y - up
* z - out
*
*********************************************************************/
#ifndef fsCNative3dSpritehdr
#define fsCNative3dSpritehdr
#include <fsCore/fsBaseTypes.h>
#if defined fs3d
#include "fsINative.h"
namespace ax { class MeshRenderer; }
namespace ax { class Animate3D; }
namespace ax { class Action; }
class fsI3dAnimation;
class fsI3dModelData;
class fsC3dCamera;
class fsC3dSprite;
class fsI3dLight;
class fsCNative3dSprite : public fsINative
{
friend class fsC3dSpriteRenderData;
public:
void trackSet(fsC3dSprite* const pAnimation);
void pathSet(fsI3dAnimation* const pAnimation);
void animationSet(fsI3dAnimation* const pAnimation);
virtual ~fsCNative3dSprite();<--- Destructor in derived class
protected:
virtual void renderDo() override;
virtual void matrixApplyDo(const fsAffineMtx2d& pRenderMatrix) override;
fsCNative3dSprite(fsI3dModelData* const pModelData);
private:
virtual ax::Node* implGet() const override;
ax::Mat4 mRenderMatrix;
ax::MeshRenderer* mTrack;
ax::Animate3D* mAnim;
ax::Action* mPath;
ax::MeshRenderer* mModelPtr;
};
#endif
#endif