Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_ID.h1
-rw-r--r--source/blender/makesdna/DNA_action_types.h4
-rw-r--r--source/blender/makesdna/DNA_constraint_types.h29
-rw-r--r--source/blender/makesdna/DNA_movieclip_types.h126
-rw-r--r--source/blender/makesdna/DNA_object_types.h33
-rw-r--r--source/blender/makesdna/DNA_scene_types.h7
-rw-r--r--source/blender/makesdna/DNA_space_types.h60
-rw-r--r--source/blender/makesdna/DNA_tracking_types.h217
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h6
-rw-r--r--source/blender/makesdna/DNA_view3d_types.h23
-rw-r--r--source/blender/makesdna/intern/makesdna.c4
11 files changed, 481 insertions, 29 deletions
diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h
index 6f2933d154b..7fa26478ae2 100644
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@ -194,6 +194,7 @@ typedef struct PreviewImage {
#define ID_PA MAKE_ID2('P', 'A') /* ParticleSettings */
#define ID_GD MAKE_ID2('G', 'D') /* GreasePencil */
#define ID_WM MAKE_ID2('W', 'M') /* WindowManager */
+#define ID_MC MAKE_ID2('M', 'C') /* MovieClip */
/* NOTE! Fake IDs, needed for g.sipo->blocktype or outliner */
#define ID_SEQ MAKE_ID2('S', 'Q')
diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h
index db574160771..b198231df3a 100644
--- a/source/blender/makesdna/DNA_action_types.h
+++ b/source/blender/makesdna/DNA_action_types.h
@@ -198,7 +198,9 @@ typedef struct bPoseChannel {
struct Bone *bone; /* set on read file or rebuild pose */
struct bPoseChannel *parent; /* set on read file or rebuild pose */
struct bPoseChannel *child; /* set on read file or rebuild pose, the 'ik' child, for b-bones */
- struct ListBase iktree; /* only while evaluating pose */
+
+ struct ListBase iktree; /* "IK trees" - only while evaluating pose */
+ struct ListBase siktree; /* Spline-IK "trees" - only while evaluating pose */
bMotionPath *mpath; /* motion path cache for this bone */
struct Object *custom; /* draws custom object instead of default bone shape */
diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h
index 00f6f2433af..3620131b8df 100644
--- a/source/blender/makesdna/DNA_constraint_types.h
+++ b/source/blender/makesdna/DNA_constraint_types.h
@@ -406,6 +406,18 @@ typedef struct bShrinkwrapConstraint {
char pad[9];
} bShrinkwrapConstraint;
+/* Follow Track constraints */
+typedef struct bFollowTrackConstraint {
+ struct MovieClip *clip;
+ char track[24];
+ int flag, reference;
+} bFollowTrackConstraint;
+
+/* Camera Solver constraints */
+typedef struct bCameraSolverConstraint {
+ struct MovieClip *clip;
+ int flag, pad;
+} bCameraSolverConstraint;
/* ------------------------------------------ */
@@ -440,6 +452,8 @@ typedef enum eBConstraint_Types {
CONSTRAINT_TYPE_TRANSLIKE, /* Copy transform matrix */
CONSTRAINT_TYPE_SAMEVOL, /* Maintain volume during scaling */
CONSTRAINT_TYPE_PIVOT, /* Pivot Constraint */
+ CONSTRAINT_TYPE_FOLLOWTRACK, /* Follow Track Constraint */
+ CONSTRAINT_TYPE_CAMERASOLVER, /* Camera Solver Constraint */
/* NOTE: no constraints are allowed to be added after this */
NUM_CONSTRAINT_TYPES
@@ -737,6 +751,21 @@ typedef enum ePivotConstraint_Flag {
PIVOTCON_FLAG_ROTACT_NEG = (1<<1)
} ePivotConstraint_Flag;
+/* FollowTrack Constraint -> flag */
+typedef enum eFollowTrack_Reference {
+ FOLLOWTRACK_TRACK = (1<<0),
+ FOLLOWTRACK_BUNDLE = (1<<1)
+} FollowTrack_Reference;
+
+typedef enum eFollowTrack_Flags {
+ FOLLOWTRACK_ACTIVECLIP = (1<<0)
+} eFollowTrack_Flags;
+
+/* CameraSolver Constraint -> flag */
+typedef enum eCameraSolver_Flags {
+ CAMERASOLVER_ACTIVECLIP = (1<<0)
+} eCameraSolver_Flags;
+
/* Rigid-Body Constraint */
#define CONSTRAINT_DRAW_PIVOT 0x40
#define CONSTRAINT_DISABLE_LINKED_COLLISION 0x80
diff --git a/source/blender/makesdna/DNA_movieclip_types.h b/source/blender/makesdna/DNA_movieclip_types.h
new file mode 100644
index 00000000000..fc21f26fa32
--- /dev/null
+++ b/source/blender/makesdna/DNA_movieclip_types.h
@@ -0,0 +1,126 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Blender Foundation,
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef DNA_MOVIECLIP_TYPES_H
+#define DNA_MOVIECLIP_TYPES_H
+
+/** \file DNA_movieclip_types.h
+ * \ingroup DNA
+ * \since may-2011
+ * \author Sergey Sharybin
+ */
+
+#include "DNA_ID.h"
+#include "DNA_tracking_types.h"
+
+struct anim;
+struct bGPdata;
+struct ImBuf;
+struct MovieClipProxy;
+struct MovieTrackingTrack;
+struct MovieTrackingMarker;
+
+typedef struct MovieClipUser {
+ int framenr; /* current frame number */
+ short render_size, render_flag; /* proxy render size */
+} MovieClipUser;
+
+typedef struct MovieClipProxy {
+ char dir[160]; /* custom directory for index and proxy files (defaults to BL_proxy) */
+
+ short tc; /* time code in use */
+ short quality; /* proxy build quality */
+ short build_size_flag; /* size flags (see below) of all proxies to build */
+ short build_tc_flag; /* time code flags (see below) of all tc indices to build */
+ short build_flag, pad; /* other build flags */
+ char pad2[4];
+} MovieClipProxy;
+
+typedef struct MovieClip {
+ ID id;
+
+ char name[240]; /* file path */
+
+ int source; /* sequence or movie */
+ int lastframe; /* last accessed frame number */
+ int lastsize[2]; /* size of last accessed frame */
+
+ float aspx, aspy; /* display aspect */
+
+ struct anim *anim; /* movie source data */
+ struct MovieClipCache *cache; /* cache for different stuff, not in file */
+ struct bGPdata *gpd; /* grease pencil data */
+
+ struct MovieTracking tracking; /* data for SfM tracking */
+ void *tracking_context; /* context of tracking job
+ used to synchronize data like framenumber
+ in SpaceClip clip user */
+
+ struct MovieClipProxy proxy; /* proxy to clip data */
+ int flag, pad;
+} MovieClip;
+
+typedef struct MovieClipScopes {
+ int ok; /* 1 means scopes are ok and recalculation is unneeded */
+ int track_preview_height; /* height of track preview widget */
+ struct ImBuf *track_preview; /* ImBuf displayed in track preview */
+ float track_pos[2]; /* sub-pizel position of marker in track ImBuf */
+ short track_disabled; /* active track is disabled, special notifier should be drawn */
+ char pad[2];
+ int framenr; /* frame number scopes are created for */
+ struct MovieTrackingTrack *track; /* track scopes are created for */
+ struct MovieTrackingMarker *marker; /* marker scopes are created for */
+ float slide_scale[2]; /* scale used for sliding from previewe area */
+} MovieClipScopes;
+
+/* MovieClipProxy->build_flag */
+#define MCLIP_PROXY_BUILD_UNDISTORT 1 /* build undistorted proxies as well */
+
+/* MovieClip->source */
+#define MCLIP_SRC_SEQUENCE 1
+#define MCLIP_SRC_MOVIE 2
+
+/* MovieClip->selection types */
+#define MCLIP_SEL_NONE 0
+#define MCLIP_SEL_TRACK 1
+
+/* MovieClip->flag */
+#define MCLIP_USE_PROXY (1<<0)
+#define MCLIP_USE_PROXY_CUSTOM_DIR (1<<1)
+
+/* MovieClip->render_size */
+#define MCLIP_PROXY_RENDER_SIZE_FULL 0
+#define MCLIP_PROXY_RENDER_SIZE_25 1
+#define MCLIP_PROXY_RENDER_SIZE_50 2
+#define MCLIP_PROXY_RENDER_SIZE_75 3
+#define MCLIP_PROXY_RENDER_SIZE_100 4
+
+/* MovieClip->render_flag */
+#define MCLIP_PROXY_RENDER_UNDISTORT 1
+
+#endif
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index 3306b9e97bc..29568fdd0fb 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -163,7 +163,8 @@ typedef struct Object {
short transflag, protectflag; /* transformation settings and transform locks */
short trackflag, upflag;
- short nlaflag, ipoflag; // xxx depreceated... old animation system
+ short nlaflag; /* used for DopeSheet filtering settings (expanded/collapsed) */
+ short ipoflag; // xxx depreceated... old animation system
short scaflag; /* ui state for game logic */
char scavisflag; /* more display settings for game logic */
char pad5;
@@ -325,11 +326,12 @@ typedef struct DupliObject {
#define PARVERT1 5
#define PARVERT3 6
#define PARBONE 7
+
+ /* slow parenting - is not threadsafe and/or may give errors after jumping */
#define PARSLOW 16
/* (short) transflag */
-/*#define OB_OFFS_LOCAL 1*/ /*UNUSED*/
-/* #define OB_QUAT 2 */ /* never used, free flag */
+/* flags 1 and 2 were unused or relics from past features */
#define OB_NEG_SCALE 4
#define OB_DUPLI (8+16+256+512+2048)
#define OB_DUPLIFRAMES 8
@@ -345,24 +347,12 @@ typedef struct DupliObject {
#define OB_NO_CONSTRAINTS 8192 /* runtime constraints disable */
/* (short) ipoflag */
- // XXX depreceated - old animation system crap
-#define OB_DRAWKEY 1
-#define OB_DRAWKEYSEL 2
-#define OB_OFFS_OB 4
-/* #define OB_OFFS_MAT 8 */ /*UNUSED*/
-/* #define OB_OFFS_VKEY 16 */ /*UNUSED*/
-/* #define OB_OFFS_PATH 32 */ /*UNUSED*/
-#define OB_OFFS_PARENT 64
-#define OB_OFFS_PARTICLE 128
- /* get ipo from from action or not? */
-#define OB_ACTION_OB 256
-#define OB_ACTION_KEY 512
- /* for stride edit */
+/* XXX: many old flags for features removed due to incompatability
+ * with new system and/or other design issues were here
+ */
+ /* for stride/path editing (XXX: NEEDS REVIEW) */
#define OB_DISABLE_PATH 1024
-#define OB_OFFS_PARENTADD 2048
-
-
/* (short) trackflag / upflag */
#define OB_POSX 0
#define OB_POSY 1
@@ -529,10 +519,7 @@ typedef struct DupliObject {
#define OB_SHAPE_EDIT_MODE 4
/* ob->nlaflag */
- // XXX depreceated - old animation system
-#define OB_NLA_OVERRIDE (1<<0)
-#define OB_NLA_COLLAPSED (1<<1)
-
+ /* WARNING: flags (1<<0) and (1<<1) were from old animsys */
/* object-channel expanded status */
#define OB_ADS_COLLAPSED (1<<10)
/* object's ipo-block */
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index de04e83e569..27e21290a9b 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -31,7 +31,7 @@
* \ingroup DNA
*/
-// XXX, temp feature
+// XXX, temp feature - campbell
#define DURIAN_CAMERA_SWITCH
#ifdef __cplusplus
@@ -54,6 +54,7 @@ struct AnimData;
struct Editing;
struct SceneStats;
struct bGPdata;
+struct MovieClip;
typedef struct Base {
struct Base *next, *prev;
@@ -863,6 +864,9 @@ typedef struct Scene {
/* Physics simulation settings */
struct PhysicsSettings physics_settings;
+
+ /* Movie Tracking */
+ struct MovieClip *clip; /* active movie clip */
} Scene;
@@ -1337,7 +1341,6 @@ typedef enum SculptFlags {
#define USER_UNIT_OPT_SPLIT 1
#define USER_UNIT_ROT_RADIANS 2
-
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index 5d437fefebc..1bafefe2b11 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -37,6 +37,7 @@
#include "DNA_vec_types.h"
#include "DNA_outliner_types.h" /* for TreeStoreElem */
#include "DNA_image_types.h" /* ImageUser */
+#include "DNA_movieclip_types.h" /* MovieClipUser */
/* Hum ... Not really nice... but needed for spacebuts. */
#include "DNA_view2d_types.h"
@@ -62,6 +63,8 @@ struct bScreen;
struct Scene;
struct wmOperator;
struct wmTimer;
+struct MovieClip;
+struct MovieClipScopes;
/**
* The base structure all the other spaces
@@ -489,6 +492,32 @@ typedef struct SpaceUserPref {
} SpaceUserPref;
+typedef struct SpaceClip {
+ SpaceLink *next, *prev;
+ ListBase regionbase; /* storage of regions for inactive spaces */
+ int spacetype;
+
+ float xof, yof; /* user defined offset, image is centered */
+ float xlockof, ylockof; /* user defined offset from locked position */
+ float zoom; /* user defined zoom level */
+
+ struct MovieClipUser user; /* user of clip */
+ struct MovieClip *clip; /* clip data */
+ struct MovieClipScopes scopes; /* different scoped displayed in space panels */
+
+ int flag; /* flags */
+ short mode; /* editor mode (editing context being displayed) */
+ short view; /* type of the clip editor view */
+
+ int path_length; /* length of displaying path, in frames */
+
+ /* current stabilization data */
+ float loc[2], scale, angle; /* pre-composed stabilization data */
+ int pad;
+ float stabmat[4][4], unistabmat[4][4]; /* current stabilization matrix and the same matrix in unified space,
+ defined when drawing and used for mouse position calculation */
+} SpaceClip;
+
/* view3d Now in DNA_view3d_types.h */
@@ -824,6 +853,7 @@ enum {
#define TIME_ALL_IMAGE_WIN 64
#define TIME_CONTINUE_PHYSICS 128
#define TIME_NODES 256
+#define TIME_CLIPS 512
/* time->cache */
#define TIME_CACHE_DISPLAY 1
@@ -862,6 +892,33 @@ enum {
#define SEQ_PROXY_RENDER_SIZE_100 99
#define SEQ_PROXY_RENDER_SIZE_FULL 100
+/* SpaceClip->flag */
+#define SC_SHOW_MARKER_PATTERN (1<<0)
+#define SC_SHOW_MARKER_SEARCH (1<<1)
+#define SC_LOCK_SELECTION (1<<2)
+#define SC_SHOW_TINY_MARKER (1<<3)
+#define SC_SHOW_TRACK_PATH (1<<4)
+#define SC_SHOW_BUNDLES (1<<5)
+#define SC_MUTE_FOOTAGE (1<<6)
+#define SC_HIDE_DISABLED (1<<7)
+#define SC_SHOW_NAMES (1<<8)
+#define SC_SHOW_GRID (1<<9)
+#define SC_SHOW_STABLE (1<<10)
+#define SC_MANUAL_CALIBRATION (1<<11)
+#define SC_SHOW_GPENCIL (1<<12)
+#define SC_SHOW_FILTERS (1<<13)
+#define SC_SHOW_GRAPH_FRAMES (1<<14)
+#define SC_SHOW_GRAPH_TRACKS (1<<15)
+#define SC_SHOW_PYRAMID_LEVELS (1<<16)
+
+/* SpaceClip->mode */
+#define SC_MODE_TRACKING 0
+#define SC_MODE_RECONSTRUCTION 1
+#define SC_MODE_DISTORTION 2
+
+/* SpaceClip->view */
+#define SC_VIEW_CLIP 0
+#define SC_VIEW_GRAPH 1
/* space types, moved from DNA_screen_types.h */
/* Do NOT change order, append on end. types are hardcoded needed */
@@ -886,7 +943,8 @@ enum {
SPACE_LOGIC,
SPACE_CONSOLE,
SPACE_USERPREF,
- SPACEICONMAX = SPACE_USERPREF
+ SPACE_CLIP,
+ SPACEICONMAX = SPACE_CLIP
};
#endif
diff --git a/source/blender/makesdna/DNA_tracking_types.h b/source/blender/makesdna/DNA_tracking_types.h
new file mode 100644
index 00000000000..b359ea3544d
--- /dev/null
+++ b/source/blender/makesdna/DNA_tracking_types.h
@@ -0,0 +1,217 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Blender Foundation,
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef DNA_TRACKING_TYPES_H
+#define DNA_TRACKING_TYPES_H
+
+/** \file DNA_tracking_types.h
+ * \ingroup DNA
+ * \since may-2011
+ * \author Sergey Sharybin
+ */
+
+#include "DNA_listBase.h"
+
+/* match-moving data */
+
+struct ImBuf;
+struct MovieReconstructedCamera;
+struct MovieTrackingCamera;
+struct MovieTrackingBundle;
+struct MovieTrackingMarker;
+struct MovieTrackingTrack;
+struct MovieTracking;
+
+typedef struct MovieReconstructedCamera {
+ int framenr;
+ float error;
+ float mat[4][4];
+} MovieReconstructedCamera;
+
+typedef struct MovieTrackingCamera {
+ void *intrinsics; /* intrinsics handle */
+
+ float sensor_width; /* width of CCD sensor */
+ float pixel_aspect; /* pixel aspect ratio */
+ float pad;
+ float focal; /* focal length */
+ short units; /* units of focal length user is working with */
+ short pad1;
+ float principal[2]; /* principal point */
+ float k1, k2, k3; /* radial distortion */
+} MovieTrackingCamera;
+
+typedef struct MovieTrackingMarker {
+ float pos[2]; /* 2d position of marker on frame (in unified 0..1 space) */
+ int framenr; /* number of frame marker is associated with */
+ int flag; /* Marker's flag (alive, ...) */
+} MovieTrackingMarker;
+
+typedef struct MovieTrackingTrack {
+ struct MovieTrackingTrack *next, *prev;
+
+ char name[24];
+
+ /* ** setings ** */
+ float pat_min[2], pat_max[2]; /* positions of left-bottom and right-top corners of pattern (in unified 0..1 space) */
+ float search_min[2], search_max[2]; /* positions of left-bottom and right-top corners of search area (in unified 0..1 space) */
+ float offset[2]; /* offset to "parenting" point */
+
+ /* ** track ** */
+ int markersnr; /* count of markers in track */
+ int last_marker; /* most recently used marker */
+ MovieTrackingMarker *markers; /* markers in track */
+
+ /* ** reconstruction data ** */
+ float bundle_pos[3]; /* reconstructed position */
+ float error; /* average track reprojection error */
+
+ int pad;
+
+ /* ** UI editing ** */
+ int flag, pat_flag, search_flag; /* flags (selection, ...) */
+ short transflag; /* transform flags */
+ char pad3[2];
+ float color[3]; /* custom color for track */
+
+ /* tracking algorithm to use; can be KLT or SAD */
+ short tracker;
+ char pad4[2];
+
+ /* ** SAD tracker settings ** */
+ float minimum_correlation; /* minimal correlation which is still treated as successful tracking */
+
+ /* ** KLT tracker settings ** */
+ int pyramid_levels; /* number of pyramid levels to use for KLT tracking */
+ char pad5[4];
+} MovieTrackingTrack;
+
+typedef struct MovieTrackingSettings {
+ /* ** common tracker settings ** */
+ short speed; /* speed of tracking */
+ short frames_limit; /* number of frames to be tarcked during single tracking session (if TRACKING_FRAMES_LIMIT is set) */
+ short margin; /* margin from frame boundaries */
+ char pad[2];
+
+ int adjframes; /* re-adjust every N frames */
+
+ /* ** reconstruction settings ** */
+ int keyframe1, keyframe2; /* two keyframes for reconstrution initialization */
+
+ /* ** tool settings ** */
+
+ /* set scale */
+ float dist; /* distance between two bundles used for scene scaling */
+
+ /* cleanup */
+ int clean_frames, clean_action;
+ float clean_error;
+} MovieTrackingSettings;
+
+typedef struct MovieTrackingStabilization {
+ int flag;
+ int tot_track, act_track; /* total number and index of active track in list */
+
+ /* 2d stabilization */
+ float maxscale; /* max auto-scale factor */
+ MovieTrackingTrack *rot_track; /* track used to stabilize rotation */
+
+ float locinf, scaleinf, rotinf; /* influence on location, scale and rotation */
+
+ /* some pre-computing run-time variables */
+ int ok, pad; /* are precomputed values and scaled buf relevant? */
+ float scale; /* autoscale factor */
+
+ struct ImBuf *scaleibuf; /* currently scaled ibuf */
+} MovieTrackingStabilization;
+
+typedef struct MovieTrackingReconstruction {
+ int flag;
+
+ float error; /* average error of reconstruction */
+
+ int last_camera; /* most recently used camera */
+ int camnr; /* number of reconstructed cameras */
+ struct MovieReconstructedCamera *cameras; /* reconstructed cameras */
+} MovieTrackingReconstruction;
+
+typedef struct MovieTracking {
+ MovieTrackingSettings settings; /* different tracking-related settings */
+ char pad2[4];
+
+ MovieTrackingCamera camera; /* camera intrinsics */
+ ListBase tracks; /* all tracks */
+ MovieTrackingReconstruction reconstruction; /* reconstruction data */
+ MovieTrackingStabilization stabilization; /* stabilization data */
+ MovieTrackingTrack *act_track; /* active track */
+} MovieTracking;
+
+/* MovieTrackingCamera->units */
+enum {
+ CAMERA_UNITS_PX = 0,
+ CAMERA_UNITS_MM
+};
+
+/* MovieTrackingMarker->flag */
+#define MARKER_DISABLED (1<<0)
+#define MARKER_TRACKED (1<<1)
+#define MARKER_GRAPH_SEL (1<<2)
+
+/* MovieTrackingTrack->flag */
+#define TRACK_HAS_BUNDLE (1<<1)
+#define TRACK_DISABLE_RED (1<<2)
+#define TRACK_DISABLE_GREEN (1<<3)
+#define TRACK_DISABLE_BLUE (1<<4)
+#define TRACK_HIDDEN (1<<5)
+#define TRACK_LOCKED (1<<6)
+#define TRACK_CUSTOMCOLOR (1<<7)
+#define TRACK_USE_2D_STAB (1<<8)
+
+/* MovieTrackingSettings->tracker */
+#define TRACKER_KLT 0
+#define TRACKER_SAD 1
+
+/* MovieTrackingSettings->speed */
+#define TRACKING_SPEED_FASTEST 0
+#define TRACKING_SPEED_REALTIME 1
+#define TRACKING_SPEED_HALF 2
+#define TRACKING_SPEED_QUARTER 4
+#define TRACKING_SPEED_DOUBLE 5
+
+/* MovieTrackingStrabilization->flag */
+#define TRACKING_2D_STABILIZATION (1<<0)
+#define TRACKING_AUTOSCALE (1<<1)
+
+/* MovieTrackingReconstruction->flag */
+#define TRACKING_RECONSTRUCTED (1<<0)
+
+#define TRACKING_CLEAN_SELECT 0
+#define TRACKING_CLEAN_DELETE_TRACK 1
+#define TRACKING_CLEAN_DELETE_SEGMENT 2
+
+#endif
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index f54c83d6612..76d52d5b6d4 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -234,6 +234,11 @@ typedef struct ThemeSpace {
char handle_vertex_select[4];
char handle_vertex_size;
+
+ char marker_outline[4], marker[4], act_marker[4], sel_marker[4], dis_marker[4], lock_marker[4];
+ char bundle_solid[4];
+ char path_before[4], path_after[4];
+ char camera_path[4];
char hpad[7];
char preview_back[4];
@@ -279,6 +284,7 @@ typedef struct bTheme {
ThemeSpace tlogic;
ThemeSpace tuserpref;
ThemeSpace tconsole;
+ ThemeSpace tclip;
/* 20 sets of bone colors for this theme */
ThemeWireColor tarm[20];
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index aaf4186945e..93f4b209712 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -38,6 +38,8 @@ struct Tex;
struct SpaceLink;
struct Base;
struct BoundBox;
+struct MovieClip;
+struct MovieClipUser;
struct RenderInfo;
struct RenderEngine;
struct bGPdata;
@@ -55,6 +57,7 @@ struct wmTimer;
#include "DNA_listBase.h"
#include "DNA_image_types.h"
+#include "DNA_movieclip_types.h"
/* ******************************** */
@@ -67,10 +70,12 @@ typedef struct BGpic {
struct Image *ima;
struct ImageUser iuser;
+ struct MovieClip *clip;
+ struct MovieClipUser cuser;
float xof, yof, size, blend;
short view;
short flag;
- float pad2;
+ short source, pad;
} BGpic;
/* ********************************* */
@@ -146,7 +151,12 @@ typedef struct View3D {
float blockscale;
short blockhandler[8];
- float viewquat[4], dist, pad1; /* XXX depricated */
+ float viewquat[4], dist; /* XXX depricated */
+
+ float bundle_size; /* size of bundles in reconstructed data */
+ short bundle_drawtype; /* display style for bundle */
+
+ char pad[6];
unsigned int lay_used; /* used while drawing */
@@ -248,6 +258,9 @@ typedef struct View3D {
#define V3D_DISPGP 16
#define V3D_LOCK_CAMERA 32
#define V3D_RENDER_SHADOW 64 /* This is a runtime only flag that's used to tell draw_mesh_object() that we're doing a shadow pass instead of a regular draw */
+#define V3D_SHOW_RECONSTRUCTION 128
+#define V3D_SHOW_CAMERAPATH 256
+#define V3D_SHOW_BUNDLENAME 512
/* View3D->around */
#define V3D_CENTER 0
@@ -294,6 +307,12 @@ typedef struct View3D {
/* BGPic->flag */
/* may want to use 1 for select ?*/
#define V3D_BGPIC_EXPANDED 2
+#define V3D_BGPIC_CAMERACLIP 4
+
+/* BGPic->source */
+/* may want to use 1 for select ?*/
+#define V3D_BGPIC_IMAGE 0
+#define V3D_BGPIC_MOVIE 1
#define RV3D_CAMZOOM_MIN -30
#define RV3D_CAMZOOM_MAX 600
diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c
index 22df8e8d1c7..c060eb186c9 100644
--- a/source/blender/makesdna/intern/makesdna.c
+++ b/source/blender/makesdna/intern/makesdna.c
@@ -131,6 +131,8 @@ const char *includefiles[] = {
"DNA_boid_types.h",
"DNA_smoke_types.h",
"DNA_speaker_types.h",
+ "DNA_movieclip_types.h",
+ "DNA_tracking_types.h",
"DNA_dynamicpaint_types.h",
// empty string to indicate end of includefiles
@@ -1197,5 +1199,7 @@ int main(int argc, char ** argv)
#include "DNA_boid_types.h"
#include "DNA_smoke_types.h"
#include "DNA_speaker_types.h"
+#include "DNA_movieclip_types.h"
+#include "DNA_tracking_types.h"
#include "DNA_dynamicpaint_types.h"
/* end of list */