typedef enum {
    /// An horizontal orientation where the Left is nearer
    kOrientationLeftOver = 0,
    /// An horizontal orientation where the Right is nearer
    kOrientationRightOver = 1,
    /// A vertical orientation where the Up is nearer
    kOrientationUpOver = 0,
    /// A vertical orientation where the Bottom is nearer
    kOrientationDownOver = 1,
} tOrientation;

class CCTransitionScene : public CCScene
{
	static CCTransitionScene* create(float t, CCScene* scene);
};

class CCTransitionSceneOriented : public CCScene
{
    static CCTransitionSceneOriented* create(float t, CCScene* scene, tOrientation o);
};

class CCTransitionRotoZoom : public CCScene
{
    static CCTransitionRotoZoom* create(float t, CCScene* scene);
};

class CCTransitionJumpZoom : public CCScene
{
    static CCTransitionJumpZoom* create(float t, CCScene* scene);
};

class CCTransitionMoveInL : public CCScene
{
    static CCTransitionMoveInL* create(float t, CCScene* scene);
};

class CCTransitionMoveInR : public CCScene
{
    static CCTransitionMoveInR* create(float t, CCScene* scene);
};

class CCTransitionMoveInT : public CCScene
{
    static CCTransitionMoveInT* create(float t, CCScene* scene);
};

class CCTransitionMoveInB : public CCScene
{
    static CCTransitionMoveInB* create(float t, CCScene* scene);
};

class CCTransitionSlideInL : public CCScene
{
    static CCTransitionSlideInL* create(float t, CCScene* scene);
};

class CCTransitionSlideInR : public CCScene
{
    static CCTransitionSlideInR* create(float t, CCScene* scene);
};

class CCTransitionSlideInB : public CCScene
{
    static CCTransitionSlideInB* create(float t, CCScene* scene);
};

class CCTransitionSlideInT : public CCScene
{
    static CCTransitionSlideInT* create(float t, CCScene* scene);
};

class CCTransitionShrinkGrow : public CCScene
{
    static	CCTransitionShrinkGrow* create(float t, CCScene* scene);
};

class CCTransitionFlipX : public CCScene
{
    static CCTransitionFlipX* create(float t, CCScene* s, tOrientation o = kOrientationRightOver);
};

class CCTransitionFlipY : public CCScene
{
    static CCTransitionFlipY* create(float t, CCScene* s, tOrientation o = kOrientationUpOver);
};

class CCTransitionFlipAngular : public CCScene
{
    static CCTransitionFlipAngular* create(float t, CCScene* s, tOrientation o = kOrientationRightOver);
};

class CCTransitionZoomFlipX : public CCScene
{
    static CCTransitionZoomFlipX* create(float t, CCScene* s, tOrientation o = kOrientationRightOver);
};

class CCTransitionZoomFlipY : public CCScene
{
    static CCTransitionZoomFlipY* create(float t, CCScene* s, tOrientation o = kOrientationUpOver);
};

class CCTransitionZoomFlipAngular : public CCScene
{
    static CCTransitionZoomFlipAngular* create(float t, CCScene* s, tOrientation o = kOrientationRightOver);
};

class CCTransitionFade : public CCScene
{
    static CCTransitionFade* create(float duration,CCScene* scene, ccColor3B color = ccBLACK);
};

class CCTransitionCrossFade : public CCScene
{
    static CCTransitionCrossFade* create(float t, CCScene* scene);
};

class CCTransitionTurnOffTiles : public CCScene
{
    static CCTransitionTurnOffTiles* create(float t, CCScene* scene);
};

class CCTransitionSplitCols : public CCScene
{
    static CCTransitionSplitCols* create(float t, CCScene* scene);
};

class CCTransitionSplitRows : public CCScene
{
    static CCTransitionSplitRows* create(float t, CCScene* scene);
};

class CCTransitionFadeTR : public CCScene
{
    static CCTransitionFadeTR* create(float t, CCScene* scene);
};

class CCTransitionFadeBL : public CCScene
{
    static CCTransitionFadeBL* create(float t, CCScene* scene);
};

class CCTransitionFadeUp : public CCScene
{
    static CCTransitionFadeUp* create(float t, CCScene* scene);
};

class CCTransitionFadeDown : public CCScene
{
    static  CCTransitionFadeDown* create(float t, CCScene* scene);
};
/*
class CCTransitionRadialCCW : public CCScene
{
    static CCTransitionRadialCCW* create(float t, CCScene* scene);
};

class CCTransitionRadialCW : public CCScene
{
    static CCTransitionRadialCW* create(float t, CCScene* scene);
};
*/
class CCTransitionPageTurn : public CCScene
{
    CCActionInterval* actionWithSize(ccGridSize vector);

    static CCTransitionPageTurn* create(float t,CCScene* scene,bool backwards);
};