Пример #1
0
void AssemblyCollectionItem::slot_create()
{
    const string assembly_name =
        get_entity_name_dialog(
            treeWidget(),
            "Create Assembly",
            "Assembly Name:",
            make_unique_name("assembly", m_parent.assemblies()));

    // todo: schedule creation of assembly when rendering.
    if (!assembly_name.empty())
    {
        auto_release_ptr<Assembly> assembly(
            AssemblyFactory().create(assembly_name.c_str(), ParamArray()));

        AssemblyItem* assembly_item =
            static_cast<AssemblyItem*>(m_parent_item->add_item(assembly.get()));

        m_parent.assemblies().insert(assembly);

        const string assembly_instance_name =
            make_unique_name(
                assembly_name + "_inst",
                m_parent.assembly_instances());

        assembly_item->instantiate(assembly_instance_name);

        m_editor_context.m_project_builder.slot_notify_project_modification();
    }
}
Пример #2
0
void AssemblyItem::slot_instantiate()
{
    const string instance_name_suggestion =
        get_name_suggestion(
            string(m_assembly.get_name()) + "_inst",
            m_parent.assembly_instances());

    const string instance_name =
        get_entity_name_dialog(
            treeWidget(),
            "Instantiate Assembly",
            "Assembly Instance Name:",
            instance_name_suggestion);

    if (!instance_name.empty())
    {
        auto_release_ptr<AssemblyInstance> assembly_instance(
            AssemblyInstanceFactory::create(
                instance_name.c_str(),
                ParamArray(),
                m_assembly.get_name()));

        m_parent_item->get_assembly_instance_collection_item().add_item(assembly_instance.get());

        m_parent.assembly_instances().insert(assembly_instance);

        m_project_builder.get_project().get_scene()->bump_version_id();
        m_project_builder.notify_project_modification();
    }
}
Пример #3
0
void AssemblyCollectionItem::slot_create()
{
    const string assembly_name_suggestion = get_name_suggestion("assembly", m_parent.assemblies());

    const string assembly_name =
        get_entity_name_dialog(
            treeWidget(),
            "Create Assembly",
            "Assembly Name:",
            assembly_name_suggestion);

    if (!assembly_name.empty())
        m_project_builder.insert_assembly(m_parent, m_parent_item, assembly_name);
}
Пример #4
0
void AssemblyItem::slot_instantiate()
{
    const string instance_name_suggestion =
        make_unique_name(
            string(m_assembly.get_name()) + "_inst",
            m_parent.assembly_instances());

    const string instance_name =
        get_entity_name_dialog(
            treeWidget(),
            "Instantiate Assembly",
            "Assembly Instance Name:",
            instance_name_suggestion);

    if (!instance_name.empty())
        instantiate(instance_name);
}
Пример #5
0
void AssemblyItem::slot_instantiate()
{
    const string instance_name_suggestion =
        get_name_suggestion(
            string(impl->m_assembly->get_name()) + "_inst",
            impl->m_scene.assembly_instances());

    const string instance_name =
        get_entity_name_dialog(
            treeWidget(),
            "Instantiate Assembly",
            "Assembly Instance Name:",
            instance_name_suggestion);

    if (!instance_name.empty())
        impl->m_project_builder.insert_assembly_instance(instance_name, *impl->m_assembly);
}
Пример #6
0
void ObjectItem::slot_instantiate()
{
    const string instance_name_suggestion =
        make_unique_name(
            string(m_entity->get_name()) + "_inst",
            m_parent.object_instances());

    const string instance_name =
        get_entity_name_dialog(
            treeWidget(),
            "Instantiate Object",
            "Object Instance Name:",
            instance_name_suggestion);

    if (!instance_name.empty())
    {
        if (m_project_builder.get_rendering_manager().is_rendering())
            schedule_instantiate(instance_name);
        else
            do_instantiate(instance_name);
    }
}
Пример #7
0
void AssemblyItem::slot_instantiate()
{
    const string instance_name_suggestion =
        get_name_suggestion(
            string(m_assembly.get_name()) + "_inst",
            m_parent.assembly_instances());

    const string instance_name =
        get_entity_name_dialog(
            treeWidget(),
            "Instantiate Assembly",
            "Assembly Instance Name:",
            instance_name_suggestion);

    if (!instance_name.empty())
    {
        if (m_project_builder.get_rendering_manager().is_rendering())
            schedule_instantiate(instance_name);
        else
            do_instantiate(instance_name);
    }
}