Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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;
}