blob: aebcddbf7d3bd17287ab8f294f4029eabce764d5 [file] [log] [blame] [edit]
#ifndef _RIVE_VIEW_MODEL_HPP_
#define _RIVE_VIEW_MODEL_HPP_
#include "rive/generated/viewmodel/viewmodel_base.hpp"
#include "rive/viewmodel/viewmodel_property.hpp"
#include "rive/viewmodel/viewmodel_instance.hpp"
#include "rive/viewmodel/symbol_type.hpp"
#include "rive/refcnt.hpp"
#include <stdio.h>
namespace rive
{
class ViewModel : public ViewModelBase, public RefCnt<ViewModel>
{
private:
std::vector<ViewModelProperty*> m_Properties;
std::vector<ViewModelInstance*> m_Instances;
public:
~ViewModel();
void addProperty(ViewModelProperty* property);
ViewModelProperty* property(const std::string& name);
ViewModelProperty* property(SymbolType symbolType);
ViewModelProperty* property(size_t index);
void addInstance(ViewModelInstance* value);
ViewModelInstance* instance(size_t index);
ViewModelInstance* instance(const std::string& name);
ViewModelInstance* defaultInstance();
size_t instanceCount() const;
std::vector<ViewModelProperty*> properties() { return m_Properties; }
std::vector<ViewModelInstance*> instances() { return m_Instances; }
};
} // namespace rive
#endif