/********************************************************************
*
* File: fsCNativeLine.h
*
* Purpose: Line that is added to and retained by a scene. All
* positioning / parenting is handled in the scene
*
*********************************************************************/
#ifndef fsCNativeLinehdr
#define fsCNativeLinehdr
#include <fsCore/fsBaseTypes.h>
#include "fsINative.h"
namespace ax
{
class DrawNode;
}
class fsSColour;
class fsAffineMtx2d;
class fsCNativeLine : public fsINative
{
friend class fsCNativeLineRenderData;
public:
virtual ~fsCNativeLine();<--- Destructor in derived class
protected:
void renderDo() override;
void matrixApplyDo(const fsAffineMtx2d& pRenderMatrix) override;
void colourSetDo(const fsSColour4B& pColour) override;
void vertsSetDo(std::vector<fsVec2d> const& pVerts) override;
void alphaBlendModeSetDo(fsS32 pAlphaBlendMode) override;<--- Function in derived class
fsCNativeLine();
private:
ax::Node* implGet() const override;
std::vector<ax::Vec2> mRawVerts;
ax::DrawNode* mImpl;
ax::Mat4 mRenderMatrix;
#ifdef AXMOL_V3
ax::Color32 mColour;
#else
ax::Color4F mColour;
#endif
};
#endif