Merge trunk up to revision 40611
[blender.git] / source / blender / makesrna / intern / rna_space.c
index e561065cb095a5b483c357a8a5a5943149b58e92..310e3bd33068ee3224973fc2302b222d5f3e51a6 100644 (file)
@@ -72,6 +72,7 @@ EnumPropertyItem space_type_items[] = {
        {SPACE_LOGIC, "LOGIC_EDITOR", 0, "Logic Editor", ""},
        {SPACE_CONSOLE, "CONSOLE", 0, "Python Console", ""},
        {SPACE_USERPREF, "USER_PREFERENCES", 0, "User Preferences", ""},
+       {SPACE_CLIP, "CLIP_EDITOR", 0, "Clip Editor", ""},
        {0, NULL, 0, NULL, NULL}};
 
 static EnumPropertyItem draw_channels_items[] = {
@@ -128,6 +129,7 @@ EnumPropertyItem viewport_shade_items[] = {
 #include "ED_screen.h"
 #include "ED_view3d.h"
 #include "ED_sequencer.h"
+#include "ED_clip.h"
 
 #include "IMB_imbuf_types.h"
 
@@ -174,6 +176,8 @@ static StructRNA* rna_Space_refine(struct PointerRNA *ptr)
                        return &RNA_SpaceConsole;
                case SPACE_USERPREF:
                        return &RNA_SpaceUserPreferences;
+               case SPACE_CLIP:
+                       return &RNA_SpaceClipEditor;
                default:
                        return &RNA_Space;
        }
@@ -921,6 +925,13 @@ static EnumPropertyItem *rna_SpaceProperties_texture_context_itemf(bContext *C,
        return item;
 }
 
+static void rna_SpaceClipEditor_clip_set(PointerRNA *ptr, PointerRNA value)
+{
+       SpaceClip *sc= (SpaceClip*)(ptr->data);
+
+       ED_space_clip_set(NULL, sc, (MovieClip*)value.data);
+}
+
 #else
 
 static void rna_def_space(BlenderRNA *brna)
@@ -1136,21 +1147,46 @@ static void rna_def_background_image(BlenderRNA *brna)
                {(1<<RV3D_VIEW_CAMERA), "CAMERA", 0, "Camera", "Show background image in camera view"},
                {0, NULL, 0, NULL, NULL}};
 
+       static EnumPropertyItem bgpic_source_items[] = {
+               {V3D_BGPIC_IMAGE, "IMAGE", 0, "Image", ""},
+               {V3D_BGPIC_MOVIE, "MOVIE", 0, "Movie", ""},
+           {0, NULL, 0, NULL, NULL}
+       };
+
        srna= RNA_def_struct(brna, "BackgroundImage", NULL);
        RNA_def_struct_sdna(srna, "BGpic");
        RNA_def_struct_ui_text(srna, "Background Image", "Image and settings for display in the 3d View background");
 
+       prop= RNA_def_property(srna, "source", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "source");
+       RNA_def_property_enum_items(prop, bgpic_source_items);
+       RNA_def_property_ui_text(prop, "Background Source", "Data source used for background");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
        prop= RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "ima");
        RNA_def_property_ui_text(prop, "Image", "Image displayed and edited in this space");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
+       prop= RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
+       RNA_def_property_pointer_sdna(prop, NULL, "clip");
+       RNA_def_property_ui_text(prop, "MovieClip", "Movie clip displayed and edited in this space");
+       RNA_def_property_flag(prop, PROP_EDITABLE);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
        prop= RNA_def_property(srna, "image_user", PROP_POINTER, PROP_NONE);
        RNA_def_property_flag(prop, PROP_NEVER_NULL);
        RNA_def_property_pointer_sdna(prop, NULL, "iuser");
        RNA_def_property_ui_text(prop, "Image User", "Parameters defining which layer, pass and frame of the image is displayed");
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
+       prop= RNA_def_property(srna, "clip_user", PROP_POINTER, PROP_NONE);
+       RNA_def_property_flag(prop, PROP_NEVER_NULL);
+       RNA_def_property_struct_type(prop, "MovieClipUser");
+       RNA_def_property_pointer_sdna(prop, NULL, "cuser");
+       RNA_def_property_ui_text(prop, "Clip User", "Parameters defining which frame of the movie clip is displayed");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "offset_x", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "xof");
@@ -1209,6 +1245,16 @@ static void rna_def_space_view3d(BlenderRNA *brna)
                {RV3D_CAMOB, "CAMERA", 0, "Camera", ""},
                {0, NULL, 0, NULL, NULL}};
        
+       static EnumPropertyItem bundle_drawtype_items[] = {
+               {OB_PLAINAXES, "PLAIN_AXES", 0, "Plain Axes", ""},
+               {OB_ARROWS, "ARROWS", 0, "Arrows", ""},
+               {OB_SINGLE_ARROW, "SINGLE_ARROW", 0, "Single Arrow", ""},
+               {OB_CIRCLE, "CIRCLE", 0, "Circle", ""},
+               {OB_CUBE, "CUBE", 0, "Cube", ""},
+               {OB_EMPTY_SPHERE, "SPHERE", 0, "Sphere", ""},
+               {OB_EMPTY_CONE, "CONE", 0, "Cone", ""},
+               {0, NULL, 0, NULL, NULL}};
+       
        srna= RNA_def_struct(brna, "SpaceView3D", "Space");
        RNA_def_struct_sdna(srna, "View3D");
        RNA_def_struct_ui_text(srna, "3D View Space", "3D View space data");
@@ -1436,6 +1482,33 @@ static void rna_def_space_view3d(BlenderRNA *brna)
        RNA_def_property_pointer_funcs(prop, "rna_SpaceView3D_region_quadview_get", NULL, NULL, NULL);
        RNA_def_property_ui_text(prop, "Quad View Region", "3D region that defines the quad view settings");
 
+       prop= RNA_def_property(srna, "show_reconstruction", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SHOW_RECONSTRUCTION);
+       RNA_def_property_ui_text(prop, "Show Reconstruction", "Display reconstruction data from active movie clip");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
+       prop= RNA_def_property(srna, "bundle_draw_size", PROP_FLOAT, PROP_NONE);
+       RNA_def_property_range(prop, 0.0, FLT_MAX);
+       RNA_def_property_float_sdna(prop, NULL, "bundle_size");
+       RNA_def_property_ui_text(prop, "Bundle Size", "Display size of bundles from reconstructed data");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
+       prop= RNA_def_property(srna, "bundle_draw_type", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "bundle_drawtype");
+       RNA_def_property_enum_items(prop, bundle_drawtype_items);
+       RNA_def_property_ui_text(prop, "Bundle Display Type", "Viewport display style for bundles");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
+       prop= RNA_def_property(srna, "show_camera_path", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SHOW_CAMERAPATH);
+       RNA_def_property_ui_text(prop, "Show Camera Path", "Show reconstructed path of ameraip");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
+       prop= RNA_def_property(srna, "show_bundle_name", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SHOW_BUNDLENAME);
+       RNA_def_property_ui_text(prop, "Show Bundle Name", "Show names for bundle objects");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
        /* region */
 
        srna= RNA_def_struct(brna, "RegionView3D", NULL);
@@ -2613,6 +2686,136 @@ static void rna_def_space_logic(BlenderRNA *brna)
 
 }
 
+static void rna_def_space_clip(BlenderRNA *brna)
+{
+       StructRNA *srna;
+       PropertyRNA *prop;
+
+       static EnumPropertyItem mode_items[] = {
+               {SC_MODE_TRACKING, "TRACKING", 0, "Tracking", "Show tracking and solving tools"},
+               {SC_MODE_RECONSTRUCTION, "RECONSTRUCTION", 0, "Reconstruction", "Show tracking/reconstruction tools"},
+               {SC_MODE_DISTORTION, "DISTORTION", 0, "Distortion", "Show distortion tools"},
+               {0, NULL, 0, NULL, NULL}};
+
+       srna= RNA_def_struct(brna, "SpaceClipEditor", "Space");
+       RNA_def_struct_sdna(srna, "SpaceClip");
+       RNA_def_struct_ui_text(srna, "Space Clip Editor", "Clip editor space data");
+
+       /* movieclip */
+       prop= RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
+       RNA_def_property_flag(prop, PROP_EDITABLE);
+       RNA_def_property_ui_text(prop, "Movie Clip", "Movie clip displayed and edited in this space");
+       RNA_def_property_pointer_funcs(prop, NULL, "rna_SpaceClipEditor_clip_set", NULL, NULL);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* clip user */
+       prop= RNA_def_property(srna, "clip_user", PROP_POINTER, PROP_NONE);
+       RNA_def_property_flag(prop, PROP_NEVER_NULL);
+       RNA_def_property_struct_type(prop, "MovieClipUser");
+       RNA_def_property_pointer_sdna(prop, NULL, "user");
+       RNA_def_property_ui_text(prop, "Movie Clip User", "Parameters defining which frame of the movie clip is displayed");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* mode */
+       prop= RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "mode");
+       RNA_def_property_enum_items(prop, mode_items);
+       RNA_def_property_ui_text(prop, "Mode", "Current clip editor mode");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show pattern */
+       prop= RNA_def_property(srna, "show_marker_pattern", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Show Marker Pattern", "Show pattern boundbox for markers");
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_MARKER_PATTERN);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show search */
+       prop= RNA_def_property(srna, "show_marker_search", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Show Marker Search", "Show search boundbox for markers");
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_MARKER_SEARCH);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* lock to selection */
+       prop= RNA_def_property(srna, "lock_selection", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Lock to Selection", "Lock viewport to selected markers during playback");
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_LOCK_SELECTION);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show markers pathes */
+       prop= RNA_def_property(srna, "show_track_path", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_TRACK_PATH);
+       RNA_def_property_ui_text(prop, "Show Track Path", "Show path of how track moves");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* path length */
+       prop= RNA_def_property(srna, "path_length", PROP_INT, PROP_NONE);
+       RNA_def_property_int_sdna(prop, NULL, "path_length");
+       RNA_def_property_range(prop, 0, 50);
+       RNA_def_property_ui_text(prop, "Path Length", "Length of displaying path, in frames");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show tiny markers */
+       prop= RNA_def_property(srna, "show_tiny_markers", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Show Tiny Markers", "Show markers tiny");
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_TINY_MARKER);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show bundles */
+       prop= RNA_def_property(srna, "show_bundles", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Show Bundles", "Show projection of bundles into footage");
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_BUNDLES);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* mute footage */
+       prop= RNA_def_property(srna, "use_mute_footage", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Mute Footage", "Mute footage and show black background instead");
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_MUTE_FOOTAGE);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* hide disabled */
+       prop= RNA_def_property(srna, "show_disabled", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_ui_text(prop, "Show Disabled", "Show disabled tracks from the footage");
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SC_HIDE_DISABLED);
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* scopes */
+       prop= RNA_def_property(srna, "scopes", PROP_POINTER, PROP_NONE);
+       RNA_def_property_pointer_sdna(prop, NULL, "scopes");
+       RNA_def_property_struct_type(prop, "MovieClipScopes");
+       RNA_def_property_ui_text(prop, "Scopes", "Scopes to visualize movie clip statistics");
+
+       /* show names */
+       prop= RNA_def_property(srna, "show_names", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_NAMES);
+       RNA_def_property_ui_text(prop, "Show Names", "Show track names and status");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show grid */
+       prop= RNA_def_property(srna, "show_grid", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_GRID);
+       RNA_def_property_ui_text(prop, "Show Grid", "Show grid showing lens distortion");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show stable */
+       prop= RNA_def_property(srna, "show_stable", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_STABLE);
+       RNA_def_property_ui_text(prop, "Show Stable", "Show stable footage in editor (if stabilization is enabled)");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* manual calibration */
+       prop= RNA_def_property(srna, "use_manual_calibration", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_MANUAL_CALIBRATION);
+       RNA_def_property_ui_text(prop, "Manual Calibration", "Use manual calibration helpers");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+
+       /* show stable */
+       prop= RNA_def_property(srna, "show_grease_pencil", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_GPENCIL);
+       RNA_def_property_ui_text(prop, "Show Grease Pencil", "Show grease pencil strokes over the footage");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
+}
+
+
 void RNA_def_space(BlenderRNA *brna)
 {
        rna_def_space(brna);
@@ -2635,6 +2838,7 @@ void RNA_def_space(BlenderRNA *brna)
        rna_def_space_userpref(brna);
        rna_def_space_node(brna);
        rna_def_space_logic(brna);
+       rna_def_space_clip(brna);
 }
 
 #endif