static void encode_SKC_production(mr_dyck_node n, int index) { gen_e exps[1]; gen_e rch,dst; rch = setif_proj(get_constructor(index,mr_k),0,n->node_variable); dst = setif_proj(get_constructor(index,mr_c),0,rch); exps[0] = dst; mr_call_setif_inclusion(constructor_expr(mr_s_constructor,exps,1),n->node_variable); }
std::unique_ptr<n0::NodeComp> CompLight::Clone(const n0::SceneNode& node) const { auto comp = std::make_unique<CompLight>(); if (!m_light) { return comp; } auto type = m_light->get_type(); auto ctor = type.get_constructor(); auto var = ctor.invoke(); auto dst = var.get_value<std::shared_ptr<pt3::Light>>(); comp->SetLight(dst); for (auto& prop : type.get_properties()) { if (prop.get_metadata(js::RTTR::NoSerializeTag())) { continue; } rttr::variant prop_value = prop.get_value(m_light); if (!prop_value) { continue; } prop.set_value(dst, prop_value); } return comp; }