struct RenderModel {};
EMSCRIPTEN_BINDINGS(RenderModelBinding) {
emscripten::class_<RenderModel>("RenderModel")
.smart_ptr_constructor<std::shared_ptr<RenderModel>>("RenderModel",
&std::make_shared<RenderModel>);
}
struct GroupRenderModel : public RenderModel {
void addModel(std::shared_ptr<wre_model::RenderModel> model) {
models.push_back(model);
}
std::vector<std::shared_ptr<wre_model::RenderModel>> models;
};
EMSCRIPTEN_BINDINGS(GroupRenderModelBinding) {
emscripten::class_<GroupRenderModel>("GroupRenderModel")
.function("addModel", &GroupRenderModel::addModel)
.smart_ptr_constructor<std::shared_ptr<GroupRenderModel>>(
"GroupRenderModel", &std::make_shared<GroupRenderModel>);
}
struct TextureRenderModel : public RenderModel {};
EMSCRIPTEN_BINDINGS(TextureRenderModelBinding) {
emscripten::class_<TextureRenderModel>("TextureRenderModel")
.smart_ptr_constructor<std::shared_ptr<TextureRenderModel>>(
"TextureRenderModel", &std::make_shared<TextureRenderModel>);
}