class CCWaves3D : public CCGrid3DAction
{
	CCObject* copyWithZone(CCZone* pZone);

    float getAmplitude(void);
    void setAmplitude(float fAmplitude);
    float getAmplitudeRate(void);
    void setAmplitudeRate(float fAmplitudeRate);

    static CCWaves3D* create(int wav, float amp, ccGridSize gridSize, float duration);
};

class CCFlipX3D : public CCGrid3DAction
{
	CCObject* copyWithZone(CCZone* pZone);

    static CCFlipX3D* create(float duration);
};

class CCFlipY3D : public CCFlipX3D
{
	CCObject* copyWithZone(CCZone* pZone);

    static CCFlipY3D* create(float duration);
};

class CCLens3D : public CCGrid3DAction
{
	CCObject* copyWithZone(CCZone* pZone);

    float getLensEffect(void);
    void setLensEffect(float fLensEffect);
    CCPoint getPosition(void);
    void setPosition(CCPoint position);

    static CCLens3D* create(CCPoint pos, float r, ccGridSize gridSize, float duration);
};

class CCRipple3D : public CCGrid3DAction
{
	CCObject* copyWithZone(CCZone* pZone);

    CCPoint getPosition(void);
    void setPosition(CCPoint position);
    float getAmplitude(void);
    void setAmplitude(float fAmplitude);
    float getAmplitudeRate(void);
    void setAmplitudeRate(float fAmplitudeRate);

    static CCRipple3D* create(CCPoint pos, float r, int wav, float amp, ccGridSize gridSize, float duration);
};

class CCShaky3D : public CCGrid3DAction
{
	CCObject* copyWithZone(CCZone* pZone);

    static CCShaky3D* create(int range, bool shakeZ, ccGridSize gridSize, float duration);
};

class CCLiquid : public CCGrid3DAction
{
	CCObject* copyWithZone(CCZone* pZone);

    float getAmplitude(void);
    void setAmplitude(float fAmplitude);
    float getAmplitudeRate(void);
    void setAmplitudeRate(float fAmplitudeRate);

    static CCLiquid* create(int wav, float amp, ccGridSize gridSize, float duration);
};

class CCWaves : public CCGrid3DAction
{
	CCObject* copyWithZone(CCZone* pZone);

    float getAmplitude(void);
    void setAmplitude(float fAmplitude);
    float getAmplitudeRate(void);
    void setAmplitudeRate(float fAmplitudeRate);

    static CCWaves* create(int wav, float amp, bool h, bool v, ccGridSize gridSize,float duration);
};

class CCTwirl : public CCGrid3DAction
{
	CCObject* copyWithZone(CCZone* pZone);

    CCPoint getPosition(void);
    void setPosition(CCPoint position);
    float getAmplitude(void);
    void setAmplitude(float fAmplitude);
    float getAmplitudeRate(void);
    void setAmplitudeRate(float fAmplitudeRate);

    static CCTwirl* create(CCPoint pos, int t, float amp, ccGridSize gridSize,float duration);
};