/***************************************************************************
*                                                                          *
*  Copyright (C) Golaem S.A.  All Rights Reserved.                         *
*                                                                          *
***************************************************************************/

#pragma once

#include <glmAbstractUserBehavior.h>

namespace glm
{
    // Behavior doing nothing, usefull to replace disabled behavior in the flow
    class GLM_SDK_API BypassBehavior : public AbstractUserBehavior
    {

    public:
        GLM_CLASS_STAT_ID( glm::MemoryStatIds::Simulation);

        BypassBehavior();

        // type checking - value derived from this type
        virtual bool isThisType(const AbstractBehavior* value) const override;

    protected:
        // cloning
        friend class CloneFactory;
        inline virtual BypassBehavior* create() const override;
    };

    //-------------------------------------------------------------------------
    inline BypassBehavior* BypassBehavior::create() const
    {
        BypassBehavior* myNewBypassBehavior = GLM_NEW(BypassBehavior, myNewBypassBehavior, getClassMemoryStatId());
        return myNewBypassBehavior;
    }
} // namespace glm
