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:
-rw-r--r--release/scripts/startup/bl_ui/properties_object.py26
-rw-r--r--source/blender/blenkernel/BKE_object.h3
-rw-r--r--source/blender/blenkernel/intern/group.c8
-rw-r--r--source/blender/blenkernel/intern/object.c46
-rw-r--r--source/blender/blenkernel/intern/pointcache.c2
-rw-r--r--source/blender/blenloader/intern/readfile.c4
-rw-r--r--source/blender/editors/animation/anim_draw.c22
-rw-r--r--source/blender/editors/animation/keyframing.c28
-rw-r--r--source/blender/editors/include/ED_anim_api.h4
-rw-r--r--source/blender/editors/object/object_relations.c2
-rw-r--r--source/blender/editors/space_view3d/drawobject.c82
-rw-r--r--source/blender/makesdna/DNA_object_types.h33
-rw-r--r--source/blender/makesrna/intern/rna_object.c44
13 files changed, 53 insertions, 251 deletions
diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py
index 0779debb102..a359d58b59e 100644
--- a/release/scripts/startup/bl_ui/properties_object.py
+++ b/release/scripts/startup/bl_ui/properties_object.py
@@ -257,10 +257,8 @@ class OBJECT_PT_duplication(ObjectButtonsPanel, Panel):
layout.prop(ob, "dupli_group", text="Group")
-# XXX: the following options are all quite buggy, ancient hacks that should be dropped
-
-class OBJECT_PT_animation(ObjectButtonsPanel, Panel):
- bl_label = "Animation Hacks"
+class OBJECT_PT_relations_extras(ObjectButtonsPanel, Panel):
+ bl_label = "Relations Extras"
bl_options = {'DEFAULT_CLOSED'}
def draw(self, context):
@@ -269,23 +267,17 @@ class OBJECT_PT_animation(ObjectButtonsPanel, Panel):
ob = context.object
split = layout.split()
-
- col = split.column()
- col.label(text="Time Offset:")
- col.prop(ob, "use_time_offset_edit", text="Edit")
- row = col.row()
- row.prop(ob, "use_time_offset_parent", text="Parent")
- row.active = (ob.parent is not None)
- row = col.row()
- row.prop(ob, "use_slow_parent")
- row.active = (ob.parent is not None)
- col.prop(ob, "time_offset", text="Offset")
-
- # XXX: these are still used for a few curve-related tracking features
+
col = split.column()
col.label(text="Tracking Axes:")
col.prop(ob, "track_axis", text="Axis")
col.prop(ob, "up_axis", text="Up Axis")
+
+ col = split.column()
+ col.prop(ob, "use_slow_parent")
+ row = col.row()
+ row.active = ((ob.parent is not None) and (ob.use_slow_parent))
+ row.prop(ob, "slow_parent_offset", text="Offset")
from bl_ui.properties_animviz import (
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index d6139a680ec..725ebfaa645 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -86,7 +86,7 @@ void set_mblur_offs(float blur);
void set_field_offs(float field);
void disable_speed_curve(int val);
-float bsystem_time(struct Scene *scene, struct Object *ob, float cfra, float ofs);
+float bsystem_time(struct Scene *scene, struct Object *ob, float cfra, float ofs); // XXX: last arg unused?
void object_scale_to_mat3(struct Object *ob, float mat[][3]);
void object_rot_to_mat3(struct Object *ob, float mat[][3]);
void object_mat3_to_rot(struct Object *ob, float mat[][3], short use_compat);
@@ -118,7 +118,6 @@ void object_tfm_restore(struct Object *ob, void *obtfm_pt);
void object_handle_update(struct Scene *scene, struct Object *ob);
void object_sculpt_modifiers_changed(struct Object *ob);
-float give_timeoffset(struct Object *ob);
int give_obdata_texspace(struct Object *ob, short **texflag, float **loc, float **size, float **rot);
int object_insert_ptcache(struct Object *ob);
diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c
index cd025ecb559..76c3e6e5502 100644
--- a/source/blender/blenkernel/intern/group.c
+++ b/source/blender/blenkernel/intern/group.c
@@ -276,8 +276,9 @@ void group_tag_recalc(Group *group)
int group_is_animated(Object *parent, Group *group)
{
GroupObject *go;
-
- if(give_timeoffset(parent) != 0.0f || parent->nlastrips.first)
+
+ // XXX: old animsys depreceated...
+ if(parent->nlastrips.first)
return 1;
for(go= group->gobject.first; go; go= go->next)
@@ -343,12 +344,11 @@ void group_handle_recalc_and_update(Scene *scene, Object *UNUSED(parent), Group
* but when its enabled at some point it will need to be changed so as not to update so much - campbell */
/* if animated group... */
- if(give_timeoffset(parent) != 0.0f || parent->nlastrips.first) {
+ if(parent->nlastrips.first) {
int cfrao;
/* switch to local time */
cfrao= scene->r.cfra;
- scene->r.cfra -= (int)floor(give_timeoffset(parent) + 0.5f);
/* we need a DAG per group... */
for(go= group->gobject.first; go; go= go->next) {
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index a78b010392e..5782ae5f2d7 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -1431,15 +1431,7 @@ float bsystem_time(struct Scene *scene, Object *UNUSED(ob), float cfra, float of
/* global time */
if (scene)
- cfra*= scene->r.framelen;
-
-#if 0 // XXX old animation system
- if (ob) {
- /* ofset frames */
- if ((ob->ipoflag & OB_OFFS_PARENT) && (ob->partype & PARSLOW)==0)
- cfra-= give_timeoffset(ob);
- }
-#endif // XXX old animation system
+ cfra *= scene->r.framelen;
cfra-= ofs;
@@ -1592,12 +1584,6 @@ static void ob_parcurve(Scene *scene, Object *ob, Object *par, float mat[][4])
makeDispListCurveTypes(scene, par, 0);
if(cu->path==NULL) return;
- /* exception, timeoffset is regarded as distance offset */
- if(cu->flag & CU_OFFS_PATHDIST) {
- timeoffs = give_timeoffset(ob);
- SWAP(float, sf_orig, ob->sf);
- }
-
/* catch exceptions: feature for nla stride editing */
if(ob->ipoflag & OB_DISABLE_PATH) {
ctime= 0.0f;
@@ -1618,7 +1604,7 @@ static void ob_parcurve(Scene *scene, Object *ob, Object *par, float mat[][4])
CLAMP(ctime, 0.0f, 1.0f);
}
else {
- ctime= scene->r.cfra - give_timeoffset(ob);
+ ctime= scene->r.cfra;
if (IS_EQF(cu->pathlen, 0.0f) == 0)
ctime /= cu->pathlen;
@@ -1862,9 +1848,6 @@ void where_is_object_time(Scene *scene, Object *ob, float ctime)
if(ob->parent) {
Object *par= ob->parent;
- // XXX depreceated - animsys
- if(ob->ipoflag & OB_OFFS_PARENT) ctime-= give_timeoffset(ob);
-
/* hurms, code below conflicts with depgraph... (ton) */
/* and even worse, it gives bad effects for NLA stride too (try ctime != par->ctime, with MBlur) */
if(no_parent_ipo==0 && stime != par->ctime) {
@@ -1873,17 +1856,20 @@ void where_is_object_time(Scene *scene, Object *ob, float ctime)
if(par->proxy_from); // was a copied matrix, no where_is! bad...
else where_is_object_time(scene, par, ctime);
-
+
solve_parenting(scene, ob, par, ob->obmat, slowmat, 0);
-
+
*par= tmp;
}
else
solve_parenting(scene, ob, par, ob->obmat, slowmat, 0);
+ /* "slow parent" is definitely not threadsafe, and may also give bad results jumping around
+ * An old-fashioned hack which probably doesn't really cut it anymore
+ */
if(ob->partype & PARSLOW) {
// include framerate
- fac1= ( 1.0f / (1.0f + (float)fabs(give_timeoffset(ob))) );
+ fac1= ( 1.0f / (1.0f + (float)fabs(ob->sf)) );
if(fac1 >= 1.0f) return;
fac2= 1.0f-fac1;
@@ -2006,7 +1992,6 @@ void where_is_object_simul(Scene *scene, Object *ob)
for a lamp that is the child of another object */
{
Object *par;
- //Ipo *ipo;
float *fp1, *fp2;
float slowmat[4][4];
float fac1, fac2;
@@ -2017,10 +2002,9 @@ for a lamp that is the child of another object */
par= ob->parent;
solve_parenting(scene, ob, par, ob->obmat, slowmat, 1);
-
+
if(ob->partype & PARSLOW) {
-
- fac1= (float)(1.0/(1.0+ fabs(give_timeoffset(ob))));
+ fac1= (float)(1.0/(1.0+ fabs(ob->sf)));
fac2= 1.0f-fac1;
fp1= ob->obmat[0];
fp2= slowmat[0];
@@ -2028,7 +2012,6 @@ for a lamp that is the child of another object */
fp1[0]= fac1*fp1[0] + fac2*fp2[0];
}
}
-
}
else {
object_to_mat4(ob, ob->obmat);
@@ -2554,15 +2537,6 @@ void object_sculpt_modifiers_changed(Object *ob)
}
}
-float give_timeoffset(Object *ob)
-{
- if ((ob->ipoflag & OB_OFFS_PARENTADD) && ob->parent) {
- return ob->sf + give_timeoffset(ob->parent);
- } else {
- return ob->sf;
- }
-}
-
int give_obdata_texspace(Object *ob, short **texflag, float **loc, float **size, float **rot)
{
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index ae12ad8e66f..b327afa7df7 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -2163,7 +2163,7 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra
* system timing. */
#if 0
if ((ob->partype & PARSLOW)==0) {
- offset= give_timeoffset(ob);
+ offset= ob->sf;
*startframe += (int)(offset+0.5f);
*endframe += (int)(offset+0.5f);
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 75b5213d576..e17f8c720a5 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -7155,7 +7155,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
while(ob) {
if(ob->transflag & 1) {
ob->transflag -= 1;
- ob->ipoflag |= OB_OFFS_OB;
+ //ob->ipoflag |= OB_OFFS_OB;
}
ob= ob->id.next;
}
@@ -7186,7 +7186,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
}
ob= main->object.first;
while(ob) {
- ob->ipoflag |= OB_OFFS_PARENT;
+ //ob->ipoflag |= OB_OFFS_PARENT;
if(ob->dt==0) ob->dt= OB_SOLID;
ob= ob->id.next;
}
diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c
index 2774bd2cda4..569125e1055 100644
--- a/source/blender/editors/animation/anim_draw.c
+++ b/source/blender/editors/animation/anim_draw.c
@@ -237,28 +237,6 @@ void ANIM_draw_cfra (const bContext *C, View2D *v2d, short flag)
glVertex2fv(vec);
glEnd();
- /* Draw dark green line if slow-parenting/time-offset is enabled */
- if (flag & DRAWCFRA_SHOW_TIMEOFS) {
- Object *ob= OBACT;
- if(ob) {
- float timeoffset= give_timeoffset(ob);
- // XXX ob->ipoflag is depreceated!
- if ((ob->ipoflag & OB_OFFS_OB) && (timeoffset != 0.0f)) {
- vec[0]-= timeoffset; /* could avoid calling twice */
-
- UI_ThemeColorShade(TH_CFRAME, -30);
-
- glBegin(GL_LINE_STRIP);
- /*vec[1]= v2d->cur.ymax;*/ // this is set already. this line is only included
- glVertex2fv(vec);
-
- vec[1]= v2d->cur.ymin;
- glVertex2fv(vec);
- glEnd();
- }
- }
- }
-
glLineWidth(1.0);
/* Draw current frame number in a little box */
diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c
index fb34245d338..9f466ef52d3 100644
--- a/source/blender/editors/animation/keyframing.c
+++ b/source/blender/editors/animation/keyframing.c
@@ -911,20 +911,6 @@ short insert_keyframe (ReportList *reports, ID *id, bAction *act, const char gro
/* apply NLA-mapping to frame to use (if applicable) */
cfra= BKE_nla_tweakedit_remap(adt, cfra, NLATIME_CONVERT_UNMAP);
}
-
-#if 0
- /* apply special time tweaking */
- // XXX check on this stuff...
- if (GS(id->name) == ID_OB) {
- //Object *ob= (Object *)id;
-
- /* ancient time-offset cruft */
- //if ( (ob->ipoflag & OB_OFFS_OB) && (give_timeoffset(ob)) ) {
- // /* actually frametofloat calc again! */
- // cfra-= give_timeoffset(ob)*scene->r.framelen;
- //}
- }
-#endif
/* key entire array convenience method */
if (array_index == -1) {
@@ -1018,20 +1004,6 @@ short delete_keyframe (ReportList *reports, ID *id, bAction *act, const char gro
}
}
-#if 0
- /* apply special time tweaking */
- // XXX check on this stuff...
- if (GS(id->name) == ID_OB) {
- //Object *ob= (Object *)id;
-
- /* ancient time-offset cruft */
- //if ( (ob->ipoflag & OB_OFFS_OB) && (give_timeoffset(ob)) ) {
- // /* actually frametofloat calc again! */
- // cfra-= give_timeoffset(ob)*scene->r.framelen;
- //}
- }
-#endif
-
/* key entire array convenience method */
if (array_index == -1) {
array_index= 0;
diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h
index 0ac5a9e46ce..6b449f68e1d 100644
--- a/source/blender/editors/include/ED_anim_api.h
+++ b/source/blender/editors/include/ED_anim_api.h
@@ -462,10 +462,8 @@ enum {
DRAWCFRA_SHOW_NUMBOX = (1<<0),
/* time indication in seconds or frames */
DRAWCFRA_UNIT_SECONDS = (1<<1),
- /* show time-offset line */
- DRAWCFRA_SHOW_TIMEOFS = (1<<2),
/* draw indicator extra wide (for timeline) */
- DRAWCFRA_WIDE = (1<<3)
+ DRAWCFRA_WIDE = (1<<2)
} eAnimEditDraw_CurrentFrame;
/* main call to draw current-frame indicator in an Animation Editor */
diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c
index e9575c85c5f..94e2f0aae00 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -655,7 +655,7 @@ static int parent_set_exec(bContext *C, wmOperator *op)
data = con->data;
data->tar = par;
- get_constraint_target_matrix(scene, con, 0, CONSTRAINT_OBTYPE_OBJECT, NULL, cmat, scene->r.cfra - give_timeoffset(ob));
+ get_constraint_target_matrix(scene, con, 0, CONSTRAINT_OBTYPE_OBJECT, NULL, cmat, scene->r.cfra);
sub_v3_v3v3(vec, ob->obmat[3], cmat[3]);
ob->loc[0] = vec[0];
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 987c3984b77..da33f48116d 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -5748,7 +5748,6 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
Object *ob;
Curve *cu;
RegionView3D *rv3d= ar->regiondata;
- //float cfraont;
float vec1[3], vec2[3];
unsigned int col=0;
int /*sel, drawtype,*/ colindex= 0;
@@ -5787,83 +5786,6 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
/* no return after this point, otherwise leaks */
view3d_cached_text_draw_begin();
-
- /* draw keys? */
-#if 0 // XXX old animation system
- if(base==(scene->basact) || (base->flag & (SELECT+BA_WAS_SEL))) {
- if(flag==0 && warning_recursive==0 && ob!=scene->obedit) {
- if(ob->ipo && ob->ipo->showkey && (ob->ipoflag & OB_DRAWKEY)) {
- ListBase elems;
- CfraElem *ce;
- float temp[7][3];
-
- warning_recursive= 1;
-
- elems.first= elems.last= 0;
- // warning: no longer checks for certain ob-keys only... (so does this need to use the proper ipokeys then?)
- make_cfra_list(ob->ipo, &elems);
-
- cfraont= (scene->r.cfra);
- drawtype= v3d->drawtype;
- if(drawtype>OB_WIRE) v3d->drawtype= OB_WIRE;
- sel= base->flag;
- memcpy(temp, &ob->loc, 7*3*sizeof(float));
-
- ipoflag= ob->ipoflag;
- ob->ipoflag &= ~OB_OFFS_OB;
-
- set_no_parent_ipo(1);
- disable_speed_curve(1);
-
- if ((ob->ipoflag & OB_DRAWKEYSEL)==0) {
- ce= elems.first;
- while(ce) {
- if(!ce->sel) {
- (scene->r.cfra)= ce->cfra/scene->r.framelen;
-
- base->flag= 0;
-
- where_is_object_time(scene, ob, (scene->r.cfra));
- draw_object(scene, ar, v3d, base, 0);
- }
- ce= ce->next;
- }
- }
-
- ce= elems.first;
- while(ce) {
- if(ce->sel) {
- (scene->r.cfra)= ce->cfra/scene->r.framelen;
-
- base->flag= SELECT;
-
- where_is_object_time(scene, ob, (scene->r.cfra));
- draw_object(scene, ar, v3d, base, 0);
- }
- ce= ce->next;
- }
-
- set_no_parent_ipo(0);
- disable_speed_curve(0);
-
- base->flag= sel;
- ob->ipoflag= ipoflag;
-
- /* restore icu->curval */
- (scene->r.cfra)= cfraont;
-
- memcpy(&ob->loc, temp, 7*3*sizeof(float));
- where_is_object(scene, ob);
- v3d->drawtype= drawtype;
-
- BLI_freelistN(&elems);
-
- warning_recursive= 0;
- }
- }
- }
-#endif // XXX old animation system
-
/* patch? children objects with a timeoffs change the parents. How to solve! */
/* if( ((int)ob->ctime) != F_(scene->r.cfra)) where_is_object(scene, ob); */
@@ -5921,7 +5843,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
if(base->flag & (SELECT+BA_WAS_SEL)) {
/* uses darker active color for non-active + selected*/
theme_id= TH_GROUP_ACTIVE;
-
+
if(scene->basact != base) {
theme_shade= -16;
}
@@ -6510,7 +6432,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
for (ct= targets.first; ct; ct= ct->next) {
/* calculate target's matrix */
if (cti->get_target_matrix)
- cti->get_target_matrix(curcon, cob, ct, bsystem_time(scene, ob, (float)(scene->r.cfra), give_timeoffset(ob)));
+ cti->get_target_matrix(curcon, cob, ct, bsystem_time(scene, ob, (float)(scene->r.cfra), 0.0f));
else
unit_m4(ct->matrix);
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/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index be2375f5716..6e797146f12 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -2210,13 +2210,20 @@ static void rna_def_object(BlenderRNA *brna)
rna_def_animviz_common(srna);
rna_def_motionpath_common(srna);
- /* duplicates */
- // XXX: evil old crap
+ /* slow parenting */
+ // XXX: evil old crap
prop= RNA_def_property(srna, "use_slow_parent", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "partype", PARSLOW);
- RNA_def_property_ui_text(prop, "Slow Parent", "Create a delay in the parent relationship");
+ RNA_def_property_ui_text(prop, "Slow Parent", "Create a delay in the parent relationship (Beware: this isn't renderfarm safe and may be invalid after jumping around the timeline)");
RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
-
+
+ prop= RNA_def_property(srna, "slow_parent_offset", PROP_FLOAT, PROP_NONE|PROP_UNIT_TIME);
+ RNA_def_property_float_sdna(prop, NULL, "sf");
+ RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF);
+ RNA_def_property_ui_text(prop, "Slow Parent Offset", "Amount of delay in the parent relationship");
+ RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
+
+ /* duplicates */
prop= RNA_def_property(srna, "dupli_type", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "transflag");
RNA_def_property_enum_items(prop, dupli_items);
@@ -2285,34 +2292,7 @@ static void rna_def_object(BlenderRNA *brna)
prop= RNA_def_property(srna, "is_duplicator", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLI);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-
- /* time offset */
- prop= RNA_def_property(srna, "time_offset", PROP_FLOAT, PROP_NONE|PROP_UNIT_TIME);
- RNA_def_property_float_sdna(prop, NULL, "sf");
- RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF);
- RNA_def_property_ui_text(prop, "Time Offset", "Animation offset in frames for F-Curve and dupligroup instances");
- RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
-
- prop= RNA_def_property(srna, "use_time_offset_edit", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "ipoflag", OB_OFFS_OB);
- RNA_def_property_ui_text(prop, "Time Offset Edit",
- "Use time offset when inserting keys and display time offset for F-Curve and action views");
-
- prop= RNA_def_property(srna, "use_time_offset_parent", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "ipoflag", OB_OFFS_PARENT);
- RNA_def_property_ui_text(prop, "Time Offset Parent", "Apply the time offset to this object's parent relationship");
- RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
-
- prop= RNA_def_property(srna, "use_time_offset_particle", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "ipoflag", OB_OFFS_PARTICLE);
- RNA_def_property_ui_text(prop, "Time Offset Particle", "Let the time offset work on the particle effect");
- RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
-
- prop= RNA_def_property(srna, "use_time_offset_add_parent", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "ipoflag", OB_OFFS_PARENTADD);
- RNA_def_property_ui_text(prop, "Time Offset Add Parent", "Add the parent's time offset value");
- RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
-
+
/* drawing */
prop= RNA_def_property(srna, "draw_type", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "dt");