Пример #1
0
ProjectItem::ProjectItem(
    ProjectBuilder& project_builder,
    ParamArray&     settings)
  : ItemBase(g_project_class_uid, "Project")
{
    set_allow_deletion(false);
    set_allow_edition(false);

    Project& project = project_builder.get_project();

    m_scene_item = new SceneItem(*project.get_scene(), project_builder, settings);
    addChild(m_scene_item);

    ItemBase* rules_item = new ItemBase(g_rules_class_uid, "Rules");
    rules_item->set_allow_deletion(false);
    rules_item->set_allow_edition(false);
    addChild(rules_item);

    m_render_layer_collection_item =
        new MultiModelCollectionItem<RenderLayerRule, Project, ProjectItem>(
            new_guid(),
            EntityTraits<RenderLayerRule>::get_human_readable_collection_type_name(),
            project,
            this,
            project_builder);
    m_render_layer_collection_item->add_items(project.render_layer_rules());
    rules_item->addChild(m_render_layer_collection_item);

    m_output_item = new OutputItem(project, project_builder);
    addChild(m_output_item);
}
Пример #2
0
FrameItem::FrameItem(
    EntityEditorContext&    editor_context,
    Frame*                  frame)
  : ItemBase(editor_context, g_class_uid, frame->get_name())
  , m_frame(frame)
{
    set_allow_deletion(false);
}
Пример #3
0
SceneItem::SceneItem(
    EntityEditorContext&    editor_context,
    Scene&                  scene)
  : BaseGroupItem(editor_context, g_class_uid, "Scene", scene)
{
    set_allow_deletion(false);
    set_allow_edition(false);

    QFont font;
    font.setBold(true);
    setFont(0, font);

    int child_index = 0;
    insertChild(
        child_index++,
        m_camera_collection_item =
            new MultiModelCollectionItem<Camera, Scene, SceneItem>(
                editor_context,
                new_guid(),
                EntityTraits<Camera>::get_human_readable_collection_type_name(),
                scene,
                this));
    m_camera_collection_item->add_items(scene.cameras());

    insertChild(
        child_index++,
        m_environment_item =
            new EnvironmentItem(
                editor_context,
                scene.get_environment(),
                scene,
                this));
    m_environment_item->set_allow_deletion(false);
    m_environment_item->set_fixed_position(true);
    editor_context.m_item_registry.insert(*scene.get_environment(), m_environment_item);

    insertChild(
        child_index++,
        m_environment_edf_collection_item =
            new MultiModelCollectionItem<EnvironmentEDF, Scene, SceneItem>(
                editor_context,
                new_guid(),
                EntityTraits<EnvironmentEDF>::get_human_readable_collection_type_name(),
                scene,
                this));
    m_environment_edf_collection_item->add_items(scene.environment_edfs());

    insertChild(
        child_index++,
        m_environment_shader_collection_item =
            new MultiModelCollectionItem<EnvironmentShader, Scene, SceneItem>(
                editor_context,
                new_guid(),
                EntityTraits<EnvironmentShader>::get_human_readable_collection_type_name(),
                scene,
                this));
    m_environment_shader_collection_item->add_items(scene.environment_shaders());
}
Пример #4
0
SceneItem::SceneItem(
    Scene&          scene,
    ProjectBuilder& project_builder,
    ParamArray&     settings)
  : BaseGroupItem(g_class_uid, "Scene", scene, project_builder, settings)
{
    set_allow_deletion(false);
    set_allow_edition(false);

    insertChild(
        0,
        m_camera_item =
            new CameraItem(
                scene.get_camera(),
                scene,
                project_builder));
    m_camera_item->set_allow_deletion(false);
    m_camera_item->set_fixed_position(true);

    insertChild(
        1,
        m_environment_item =
            new EnvironmentItem(
                scene.get_environment(),
                scene,
                project_builder));
    m_environment_item->set_allow_deletion(false);
    m_environment_item->set_fixed_position(true);

    insertChild(
        2,
        m_environment_edf_collection_item =
            new MultiModelCollectionItem<EnvironmentEDF, Scene, SceneItem>(
                new_guid(),
                EntityTraits<EnvironmentEDF>::get_human_readable_collection_type_name(),
                scene,
                this,
                project_builder));
    m_environment_edf_collection_item->add_items(scene.environment_edfs());

    insertChild(
        3,
        m_environment_shader_collection_item =
            new MultiModelCollectionItem<EnvironmentShader, Scene, SceneItem>(
                new_guid(),
                EntityTraits<EnvironmentShader>::get_human_readable_collection_type_name(),
                scene,
                this,
                project_builder));
    m_environment_shader_collection_item->add_items(scene.environment_shaders());
}