WindowsXP/windows/core/ntgdi/test/teff/te-primitive.h
2025-04-27 07:49:33 -04:00

49 lines
1.1 KiB
C++

// te-primitive.h: definition of the CTE_Primitive class
// Individual effects are derived form here
#ifndef TE_PRIMITIVE_DEFINED
#define TE_PRIMITIVE_DEFINED
#include <te-effect.h>
#include <te-param.h>
#include <vector>
//////////////////////////////////////////////////////////////////////////////
class CTE_Primitive : public CTE_Effect
{
// Interface:
public:
CTE_Primitive();
virtual ~CTE_Primitive();
int GetNumParams(void) const { return m_pParams.size(); }
CTE_Param* GetParam(int i) const;
CTE_Param* GetParam(CString const& name) const;
BOOL AddParam(CTE_Param* param)
{
m_pParams.push_back(param);
return TRUE;
}
virtual void CreateParameters(void) = 0;
virtual void Dump(void) const;
virtual void Apply
(
CTE_Outline const& outline, // copy may be passed on
CTE_Placement const& pl,
CTE_Image& result
) = 0;
private:
void DeleteParams(void);
// Private data members:
private:
std::vector<CTE_Param *> m_pParams; // collection of effect parameters
};
#endif