mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 17:47:43 +00:00
All MP1 element decls in
This commit is contained in:
53
Runtime/Particle/IElement.hpp
Normal file
53
Runtime/Particle/IElement.hpp
Normal file
@@ -0,0 +1,53 @@
|
||||
#ifndef __RETRO_IELEMENT_HPP__
|
||||
#define __RETRO_IELEMENT_HPP__
|
||||
|
||||
#include <memory>
|
||||
#include "GCNTypes.hpp"
|
||||
#include "CVector3f.hpp"
|
||||
#include "CColor.hpp"
|
||||
#include "IOStreams.hpp"
|
||||
|
||||
namespace Retro
|
||||
{
|
||||
|
||||
class IElement
|
||||
{
|
||||
public:
|
||||
virtual ~IElement() = default;
|
||||
};
|
||||
|
||||
class CRealElement : public IElement
|
||||
{
|
||||
public:
|
||||
virtual bool GetValue(int frame, float& valOut) const=0;
|
||||
virtual bool IsConstant() const {return false;}
|
||||
};
|
||||
|
||||
class CIntElement : public IElement
|
||||
{
|
||||
public:
|
||||
virtual bool GetValue(int frame, int& valOut) const=0;
|
||||
};
|
||||
|
||||
class CVectorElement : public IElement
|
||||
{
|
||||
public:
|
||||
virtual bool GetValue(int frame, Zeus::CVector3f& valOut) const=0;
|
||||
virtual bool IsFastConstant() const {return false;}
|
||||
};
|
||||
|
||||
class CModVectorElement : public IElement
|
||||
{
|
||||
public:
|
||||
virtual bool GetValue(int frame, Zeus::CVector3f& vec1Out, Zeus::CVector3f& vec2Out) const=0;
|
||||
};
|
||||
|
||||
class CColorElement : public IElement
|
||||
{
|
||||
public:
|
||||
virtual bool GetValue(int frame, Zeus::CColor& colorOut) const=0;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // __RETRO_IELEMENT_HPP__
|
||||
Reference in New Issue
Block a user