#ifndef _RIVE_IMAGE_ASSET_BASE_HPP_
#define _RIVE_IMAGE_ASSET_BASE_HPP_
#include "rive/assets/drawable_asset.hpp"
namespace rive
{
	class ImageAssetBase : public DrawableAsset
	{
	protected:
		typedef DrawableAsset Super;

	public:
		static const uint16_t typeKey = 105;

		/// Helper to quickly determine if a core object extends another without
		/// RTTI at runtime.
		bool isTypeOf(uint16_t typeKey) const override
		{
			switch (typeKey)
			{
				case ImageAssetBase::typeKey:
				case DrawableAssetBase::typeKey:
				case FileAssetBase::typeKey:
				case AssetBase::typeKey:
					return true;
				default:
					return false;
			}
		}

		uint16_t coreType() const override { return typeKey; }

		Core* clone() const override;

	protected:
	};
} // namespace rive

#endif