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:
authorSergey Sharybin <sergey.vfx@gmail.com>2011-12-05 22:57:17 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2011-12-05 22:57:17 +0400
commit9355cc5c399a9d7cd49815c68eeeac788022ba1a (patch)
treec4b9c3c19e31b7a06f98486fcbb85008dc51ca5c /source/blender/makesdna
parentf55f9e95db44838130a18f80b33bd77f58e8a987 (diff)
Object tracking; initial commit
This commit implements basis stuff needed for object tracking, use case isn't perfect now, interface also should be cleaned a bit. - Added list of objects to be tracked. Default there's only one object called "Camera" which is used for solving camera motion. Other objects can be added and each of them will have it;s own list of tracks. Only one object can be used for camera solving at this moment. - Added new constraint called "Object Tracking" which makes oriented object be moving in the save way as solved object motion. - Scene orientation tools can be used for orienting object to bundles. - All tools which works with list of tracks or reconstruction data now gets that lists from active editing object. - All objects and their tracking data are available via python api.
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_constraint_types.h14
-rw-r--r--source/blender/makesdna/DNA_tracking_types.h19
2 files changed, 31 insertions, 2 deletions
diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h
index 4aff540a948..10c4153702d 100644
--- a/source/blender/makesdna/DNA_constraint_types.h
+++ b/source/blender/makesdna/DNA_constraint_types.h
@@ -412,6 +412,7 @@ typedef struct bFollowTrackConstraint {
struct MovieClip *clip;
char track[24];
int flag, pad;
+ char object[24];
} bFollowTrackConstraint;
/* Camera Solver constraints */
@@ -420,6 +421,13 @@ typedef struct bCameraSolverConstraint {
int flag, pad;
} bCameraSolverConstraint;
+/* Camera Solver constraints */
+typedef struct bObjectSolverConstraint {
+ struct MovieClip *clip;
+ int flag, pad;
+ char object[24];
+} bObjectSolverConstraint;
+
/* ------------------------------------------ */
/* bConstraint->type
@@ -455,6 +463,7 @@ typedef enum eBConstraint_Types {
CONSTRAINT_TYPE_PIVOT, /* Pivot Constraint */
CONSTRAINT_TYPE_FOLLOWTRACK, /* Follow Track Constraint */
CONSTRAINT_TYPE_CAMERASOLVER, /* Camera Solver Constraint */
+ CONSTRAINT_TYPE_OBJECTSOLVER, /* Object Solver Constraint */
/* NOTE: no constraints are allowed to be added after this */
NUM_CONSTRAINT_TYPES
@@ -762,6 +771,11 @@ typedef enum eCameraSolver_Flags {
CAMERASOLVER_ACTIVECLIP = (1<<0)
} eCameraSolver_Flags;
+/* ObjectSolver Constraint -> flag */
+typedef enum eObjectSolver_Flags {
+ OBJECTSOLVER_ACTIVECLIP = (1<<0)
+} eObjectSolver_Flags;
+
/* Rigid-Body Constraint */
#define CONSTRAINT_DRAW_PIVOT 0x40
#define CONSTRAINT_DISABLE_LINKED_COLLISION 0x80
diff --git a/source/blender/makesdna/DNA_tracking_types.h b/source/blender/makesdna/DNA_tracking_types.h
index 9058e82b367..fd0e281b60f 100644
--- a/source/blender/makesdna/DNA_tracking_types.h
+++ b/source/blender/makesdna/DNA_tracking_types.h
@@ -172,6 +172,15 @@ typedef struct MovieTrackingReconstruction {
struct MovieReconstructedCamera *cameras; /* reconstructed cameras */
} MovieTrackingReconstruction;
+typedef struct MovieTrackingObject {
+ struct MovieTrackingObject *next, *prev;
+
+ char name[24]; /* Name of tracking object */
+ int flag, pad;
+ ListBase tracks; /* list of tracks use to tracking this object */
+ MovieTrackingReconstruction reconstruction; /* reconstruction data for this object */
+} MovieTrackingObject;
+
typedef struct MovieTrackingStats {
char message[256];
} MovieTrackingStats;
@@ -179,11 +188,14 @@ typedef struct MovieTrackingStats {
typedef struct MovieTracking {
MovieTrackingSettings settings; /* different tracking-related settings */
MovieTrackingCamera camera; /* camera intrinsics */
- ListBase tracks; /* all tracks */
- MovieTrackingReconstruction reconstruction; /* reconstruction data */
+ ListBase tracks; /* list of tracks used for camera object */
+ MovieTrackingReconstruction reconstruction; /* reconstruction data for camera object */
MovieTrackingStabilization stabilization; /* stabilization data */
MovieTrackingTrack *act_track; /* active track */
+ ListBase objects;
+ int objectnr, tot_object; /* index of active object and total number of objects */
+
MovieTrackingStats *stats; /* statistics displaying in clip editor */
} MovieTracking;
@@ -242,6 +254,9 @@ enum {
/* MovieTrackingReconstruction->flag */
#define TRACKING_RECONSTRUCTED (1<<0)
+/* MovieTrackingObject->flag */
+#define TRACKING_OBJECT_CAMERA (1<<0)
+
#define TRACKING_CLEAN_SELECT 0
#define TRACKING_CLEAN_DELETE_TRACK 1
#define TRACKING_CLEAN_DELETE_SEGMENT 2