- moved unit settings from user prefs into the scene.
- use the scene context for the unit settings since there isn't a better place for it currently. - added 'chain' to imperial units - set more rna props to be distances and angles.
This commit is contained in:
@@ -428,6 +428,25 @@ class SCENE_PT_stamp(RenderButtonsPanel):
|
||||
sub.active = rd.stamp_note
|
||||
sub.itemR(rd, "stamp_note_text", text="")
|
||||
|
||||
class SCENE_PT_unit(RenderButtonsPanel):
|
||||
__label__ = "Units"
|
||||
__default_closed__ = True
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
unit = context.scene.unit_settings
|
||||
|
||||
col = layout.column()
|
||||
col.itemR(unit, "system")
|
||||
|
||||
col = layout.column()
|
||||
col.active = (unit.system != 'NONE')
|
||||
col.itemR(unit, "scale_length")
|
||||
col.itemR(unit, "use_separate")
|
||||
|
||||
|
||||
bpy.types.register(SCENE_PT_render)
|
||||
bpy.types.register(SCENE_PT_layers)
|
||||
bpy.types.register(SCENE_PT_dimensions)
|
||||
@@ -438,3 +457,4 @@ bpy.types.register(SCENE_PT_encoding)
|
||||
bpy.types.register(SCENE_PT_performance)
|
||||
bpy.types.register(SCENE_PT_post_processing)
|
||||
bpy.types.register(SCENE_PT_stamp)
|
||||
bpy.types.register(SCENE_PT_unit)
|
||||
|
||||
@@ -320,17 +320,6 @@ class INFO_PT_edit(bpy.types.Panel):
|
||||
sub1.itemS()
|
||||
sub1.itemL(text="Transform:")
|
||||
sub1.itemR(edit, "drag_immediately")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
|
||||
sub1.itemL(text="Units:")
|
||||
sub1.itemR(edit, "unit_system")
|
||||
|
||||
sub2 = sub1.column()
|
||||
sub2.active = (edit.unit_system != 'NONE')
|
||||
sub2.itemR(edit, "unit_scale_length")
|
||||
sub2.itemR(edit, "use_unit_split")
|
||||
|
||||
col = split.column()
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
@@ -280,6 +280,9 @@ Scene *add_scene(char *name)
|
||||
|
||||
sce->toolsettings->proportional_size = 1.0f;
|
||||
|
||||
|
||||
sce->unit.scale_length = 1.0f;
|
||||
|
||||
pset= &sce->toolsettings->particle;
|
||||
pset->flag= PE_KEEP_LENGTHS|PE_LOCK_FIRST|PE_DEFLECT_EMITTER;
|
||||
pset->emitterdist= 0.25f;
|
||||
|
||||
@@ -82,6 +82,7 @@ static struct bUnitCollection buMetricLenCollecton = {buMetricLenDef, 3, 0, size
|
||||
static struct bUnitDef buImperialLenDef[] = {
|
||||
{"mile", "Miles", "mi", "m", 1609.344, 0.0, B_UNIT_DEF_NONE},
|
||||
{"furlong", "Furlongs", "fur", NULL,201.168, 0.0, B_UNIT_DEF_SUPPRESS},
|
||||
{"chain", "Chains", "ch", NULL, 0.9144*22.0, 0.0, B_UNIT_DEF_SUPPRESS},
|
||||
{"yard", "Yards", "yd", NULL, 0.9144, 0.0, B_UNIT_DEF_NONE},
|
||||
{"foot", "Feet", "'", "ft", 0.3048, 0.0, B_UNIT_DEF_NONE},
|
||||
{"inch", "Inches", "\"", "in", 0.0254, 0.0, B_UNIT_DEF_NONE}, /* base unit */
|
||||
|
||||
@@ -1144,7 +1144,8 @@ int ui_is_but_float(uiBut *but)
|
||||
|
||||
int ui_is_but_unit(uiBut *but)
|
||||
{
|
||||
if(U.unit_system == USER_UNIT_NONE)
|
||||
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
|
||||
if(scene->unit.system == USER_UNIT_NONE)
|
||||
return 0;
|
||||
|
||||
if(but->rnaprop==NULL)
|
||||
@@ -1324,13 +1325,13 @@ int ui_get_but_string_max_length(uiBut *but)
|
||||
|
||||
static double ui_get_but_scale_unit(uiBut *but, double value)
|
||||
{
|
||||
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
|
||||
int subtype= RNA_property_subtype(but->rnaprop);
|
||||
|
||||
if(subtype & PROP_UNIT_LENGTH) {
|
||||
return value * U.unit_scale_length;
|
||||
return value * scene->unit.scale_length;
|
||||
}
|
||||
else if(subtype & PROP_UNIT_TIME) { /* WARNING - using evil_C :| */
|
||||
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
|
||||
return FRA2TIME(value);
|
||||
}
|
||||
else {
|
||||
@@ -1340,23 +1341,27 @@ static double ui_get_but_scale_unit(uiBut *but, double value)
|
||||
|
||||
static void ui_get_but_string_unit(uiBut *but, char *str, double value, int pad)
|
||||
{
|
||||
int do_split= U.unit_flag & USER_UNIT_OPT_SPLIT ? 1:0;
|
||||
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
|
||||
int do_split= scene->unit.flag & USER_UNIT_OPT_SPLIT;
|
||||
int unit_type= RNA_SUBTYPE_UNIT_VALUE(RNA_property_subtype(but->rnaprop));
|
||||
int precission= but->a2;
|
||||
|
||||
if(scene->unit.scale_length<0.0001) scene->unit.scale_length= 1.0; // XXX do_versions
|
||||
|
||||
/* Sanity checks */
|
||||
if(precission>4) precission= 4;
|
||||
else if(precission==0) precission= 2;
|
||||
|
||||
bUnit_AsString(str, ui_get_but_scale_unit(but, value), precission, U.unit_system, unit_type, do_split, pad);
|
||||
bUnit_AsString(str, ui_get_but_scale_unit(but, value), precission, scene->unit.system, unit_type, do_split, pad);
|
||||
}
|
||||
|
||||
static float ui_get_but_step_unit(uiBut *but, double value, float step_default)
|
||||
{
|
||||
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
|
||||
int unit_type= RNA_SUBTYPE_UNIT_VALUE(RNA_property_subtype(but->rnaprop));
|
||||
float step;
|
||||
|
||||
step = bUnit_ClosestScalar(ui_get_but_scale_unit(but, value), U.unit_system, unit_type);
|
||||
step = bUnit_ClosestScalar(ui_get_but_scale_unit(but, value), scene->unit.system, unit_type);
|
||||
|
||||
if(step > 0.0) { /* -1 is an error value */
|
||||
return (step/ui_get_but_scale_unit(but, 1.0))*100;
|
||||
@@ -1502,10 +1507,12 @@ int ui_set_but_string(bContext *C, uiBut *but, const char *str)
|
||||
{
|
||||
char str_unit_convert[256];
|
||||
int unit_type= RNA_SUBTYPE_UNIT_VALUE(RNA_property_subtype(but->rnaprop));
|
||||
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
|
||||
|
||||
if(U.unit_system != USER_UNIT_NONE && unit_type) {
|
||||
|
||||
if(scene->unit.system != USER_UNIT_NONE && unit_type) {
|
||||
/* ugly, use the draw string to get the value, this could cause problems if it includes some text which resolves to a unit */
|
||||
bUnit_ReplaceString(str_unit_convert, str, but->drawstr, ui_get_but_scale_unit(but, 1.0), U.unit_system, unit_type);
|
||||
bUnit_ReplaceString(str_unit_convert, str, but->drawstr, ui_get_but_scale_unit(but, 1.0), scene->unit.system, unit_type);
|
||||
}
|
||||
else {
|
||||
strcpy(str_unit_convert, str);
|
||||
@@ -1865,9 +1872,6 @@ void ui_check_but(uiBut *but)
|
||||
/* support length type buttons */
|
||||
else if(ui_is_but_unit(but)) {
|
||||
char new_str[256];
|
||||
|
||||
if(U.unit_scale_length<0.0001) U.unit_scale_length= 1.0; // XXX do_versions
|
||||
|
||||
ui_get_but_string_unit(but, new_str, value, TRUE);
|
||||
sprintf(but->drawstr, "%s%s", but->str, new_str);
|
||||
}
|
||||
|
||||
@@ -237,7 +237,7 @@ static void drawgrid_draw(ARegion *ar, float wx, float wy, float x, float y, flo
|
||||
|
||||
#define GRID_MIN_PX 6.0f
|
||||
|
||||
static void drawgrid(ARegion *ar, View3D *v3d, char **grid_unit)
|
||||
static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_unit)
|
||||
{
|
||||
/* extern short bgpicmode; */
|
||||
RegionView3D *rv3d= ar->regiondata;
|
||||
@@ -260,7 +260,7 @@ static void drawgrid(ARegion *ar, View3D *v3d, char **grid_unit)
|
||||
x= (wx)*fx/fw;
|
||||
y= (wy)*fy/fw;
|
||||
|
||||
vec4[0]=vec4[1]= (U.unit_system) ? 1.0 : v3d->grid;
|
||||
vec4[0]=vec4[1]= (unit->system) ? 1.0 : v3d->grid;
|
||||
|
||||
vec4[2]= 0.0;
|
||||
vec4[3]= 1.0;
|
||||
@@ -277,7 +277,7 @@ static void drawgrid(ARegion *ar, View3D *v3d, char **grid_unit)
|
||||
/* check zoom out */
|
||||
UI_ThemeColor(TH_GRID);
|
||||
|
||||
if(U.unit_system) {
|
||||
if(unit->system) {
|
||||
/* Use GRID_MIN_PX*2 for units because very very small grid
|
||||
* items are less useful when dealing with units */
|
||||
void *usys;
|
||||
@@ -286,21 +286,21 @@ static void drawgrid(ARegion *ar, View3D *v3d, char **grid_unit)
|
||||
float dx_scalar;
|
||||
float blend_fac;
|
||||
|
||||
bUnit_GetSystem(&usys, &len, U.unit_system, B_UNIT_LENGTH);
|
||||
bUnit_GetSystem(&usys, &len, unit->system, B_UNIT_LENGTH);
|
||||
|
||||
if(usys) {
|
||||
i= len;
|
||||
while(i--) {
|
||||
scalar= bUnit_GetScaler(usys, i);
|
||||
|
||||
dx_scalar = dx * scalar * U.unit_scale_length;
|
||||
dx_scalar = dx * scalar * unit->scale_length;
|
||||
if (dx_scalar < (GRID_MIN_PX*2))
|
||||
continue;
|
||||
|
||||
/* Store the smallest drawn grid size units name so users know how big each grid cell is */
|
||||
if(*grid_unit==NULL) {
|
||||
*grid_unit= bUnit_GetNamePlural(usys, i);
|
||||
v3d->gridview= (scalar * U.unit_scale_length);
|
||||
v3d->gridview= (scalar * unit->scale_length);
|
||||
}
|
||||
blend_fac= 1-((GRID_MIN_PX*2)/dx_scalar);
|
||||
|
||||
@@ -1978,7 +1978,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
|
||||
}
|
||||
else {
|
||||
ED_region_pixelspace(ar);
|
||||
drawgrid(ar, v3d, &grid_unit);
|
||||
drawgrid(&scene->unit, ar, v3d, &grid_unit);
|
||||
/* XXX make function? replaces persp(1) */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
wmLoadMatrix(rv3d->winmat);
|
||||
|
||||
@@ -3040,11 +3040,11 @@ static void headerTranslation(TransInfo *t, float vec[3], char *str) {
|
||||
applyAspectRatio(t, dvec);
|
||||
|
||||
dist = VecLength(vec);
|
||||
if(U.unit_system) {
|
||||
int i, do_split= U.unit_flag & USER_UNIT_OPT_SPLIT ? 1:0;
|
||||
if(t->scene->unit.system) {
|
||||
int i, do_split= t->scene->unit.flag & USER_UNIT_OPT_SPLIT ? 1:0;
|
||||
|
||||
for(i=0; i<3; i++)
|
||||
bUnit_AsString(&tvec[i*20], dvec[i]*U.unit_scale_length, 4, U.unit_system, B_UNIT_LENGTH, do_split, 1);
|
||||
bUnit_AsString(&tvec[i*20], dvec[i]*t->scene->unit.scale_length, 4, t->scene->unit.system, B_UNIT_LENGTH, do_split, 1);
|
||||
}
|
||||
else {
|
||||
sprintf(&tvec[0], "%.4f", dvec[0]);
|
||||
@@ -3053,8 +3053,8 @@ static void headerTranslation(TransInfo *t, float vec[3], char *str) {
|
||||
}
|
||||
}
|
||||
|
||||
if(U.unit_system)
|
||||
bUnit_AsString(distvec, dist*U.unit_scale_length, 4, U.unit_system, B_UNIT_LENGTH, U.unit_flag & USER_UNIT_OPT_SPLIT, 0);
|
||||
if(t->scene->unit.system)
|
||||
bUnit_AsString(distvec, dist*t->scene->unit.scale_length, 4, t->scene->unit.system, B_UNIT_LENGTH, t->scene->unit.flag & USER_UNIT_OPT_SPLIT, 0);
|
||||
else if( dist > 1e10 || dist < -1e10 ) /* prevent string buffer overflow */
|
||||
sprintf(distvec, "%.4e", dist);
|
||||
else
|
||||
|
||||
@@ -622,6 +622,12 @@ typedef struct bStats {
|
||||
int totvert, totface;
|
||||
} bStats;
|
||||
|
||||
typedef struct UnitSettings {
|
||||
/* Display/Editing unit options for each scene */
|
||||
float scale_length; /* maybe have other unit conversions? */
|
||||
short system;
|
||||
short flag; /* imperial, metric etc */
|
||||
} UnitSettings;
|
||||
|
||||
typedef struct Scene {
|
||||
ID id;
|
||||
@@ -681,6 +687,10 @@ typedef struct Scene {
|
||||
/* Game Settings */
|
||||
struct GameFraming framing; // XXX deprecated since 2.5
|
||||
struct GameData gm;
|
||||
|
||||
/* Units */
|
||||
struct UnitSettings unit;
|
||||
|
||||
} Scene;
|
||||
|
||||
|
||||
@@ -1072,6 +1082,15 @@ typedef enum SculptFlags {
|
||||
#define SK_RETARGET_ROLL_VIEW 1
|
||||
#define SK_RETARGET_ROLL_JOINT 2
|
||||
|
||||
/* UnitSettings */
|
||||
|
||||
/* UnitSettings->system */
|
||||
#define USER_UNIT_NONE 0
|
||||
#define USER_UNIT_METRIC 1
|
||||
#define USER_UNIT_IMPERIAL 2
|
||||
/* UnitSettings->flag */
|
||||
#define USER_UNIT_OPT_SPLIT 1
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -299,9 +299,7 @@ typedef struct UserDef {
|
||||
int audiochannels;
|
||||
|
||||
int scrollback; /* console scrollback limit */
|
||||
float unit_scale_length, pad1; /* maybe have other unit conversions? */
|
||||
char unit_system, unit_flag; /* imperial, metric etc */
|
||||
short dpi; /* range 48-128? */
|
||||
int dpi; /* range 48-128? */
|
||||
short encoding;
|
||||
short transopts;
|
||||
short menuthreshold1, menuthreshold2;
|
||||
@@ -418,13 +416,6 @@ extern UserDef U; /* from blenkernel blender.c */
|
||||
/* toolsettings->autokey_flag */
|
||||
#define ANIMRECORD_FLAG_WITHNLA (1<<10)
|
||||
|
||||
/* unit_type */
|
||||
#define USER_UNIT_NONE 0
|
||||
#define USER_UNIT_METRIC 1
|
||||
#define USER_UNIT_IMPERIAL 2
|
||||
/* unit_flag */
|
||||
#define USER_UNIT_OPT_SPLIT 1
|
||||
|
||||
/* transopts */
|
||||
#define USER_TR_TOOLTIPS (1 << 0)
|
||||
#define USER_TR_BUTTONS (1 << 1)
|
||||
|
||||
@@ -470,6 +470,7 @@ extern StructRNA RNA_TransformSequence;
|
||||
extern StructRNA RNA_UILayout;
|
||||
extern StructRNA RNA_UIListItem;
|
||||
extern StructRNA RNA_UVProjectModifier;
|
||||
extern StructRNA RNA_UnitSettings;
|
||||
extern StructRNA RNA_UnknownType;
|
||||
extern StructRNA RNA_UserPreferences;
|
||||
extern StructRNA RNA_UserPreferencesAutosave;
|
||||
|
||||
@@ -416,7 +416,7 @@ static void rna_def_constraint_kinematic(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Pole Sub-Target", "");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update");
|
||||
|
||||
prop= RNA_def_property(srna, "pole_angle", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "pole_angle", PROP_FLOAT, PROP_ANGLE); // XXX - todo, convert to rad
|
||||
RNA_def_property_float_sdna(prop, NULL, "poleangle");
|
||||
RNA_def_property_range(prop, 0.0, 180.f);
|
||||
RNA_def_property_ui_text(prop, "Pole Angle", "Pole rotation offset.");
|
||||
@@ -676,7 +676,7 @@ static void rna_def_constraint_minmax(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Use Rotation", "Use the target's rotation to determine floor.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_range(prop, 0.0, 100.f);
|
||||
RNA_def_property_ui_text(prop, "Offset", "Offset of floor from object center.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
@@ -871,7 +871,7 @@ static void rna_def_constraint_follow_path(BlenderRNA *brna)
|
||||
RNA_def_property_flag(prop, PROP_EDITABLE);
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update");
|
||||
|
||||
prop= RNA_def_property(srna, "offset", PROP_INT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "offset", PROP_INT, PROP_TIME);
|
||||
RNA_def_property_range(prop, -300000.0, 300000.f);
|
||||
RNA_def_property_ui_text(prop, "Offset", "Offset from the position corresponding to the time frame.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
@@ -938,7 +938,7 @@ static void rna_def_constraint_stretch_to(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Keep Axis", "Axis to maintain during stretch.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "original_length", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "original_length", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "orglength");
|
||||
RNA_def_property_range(prop, 0.0, 100.f);
|
||||
RNA_def_property_ui_text(prop, "Original Length", "Length at rest position.");
|
||||
@@ -983,37 +983,37 @@ static void rna_def_constraint_rigid_body_joint(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Pivot Type", "");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "pivot_x", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "pivot_x", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "pivX");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Pivot X", "Offset pivot on X.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "pivot_y", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "pivot_y", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "pivY");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Pivot Y", "Offset pivot on Y.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "pivot_z", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "pivot_z", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "pivZ");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Pivot Z", "Offset pivot on Z.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "axis_x", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "axis_x", PROP_FLOAT, PROP_ANGLE); // XXX - convert to radians
|
||||
RNA_def_property_float_sdna(prop, NULL, "axX");
|
||||
RNA_def_property_range(prop, -360.0, 360.f);
|
||||
RNA_def_property_ui_text(prop, "Axis X", "Rotate pivot on X axis in degrees.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "axis_y", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "axis_y", PROP_FLOAT, PROP_ANGLE); // XXX - convert to radians
|
||||
RNA_def_property_float_sdna(prop, NULL, "axY");
|
||||
RNA_def_property_range(prop, -360.0, 360.f);
|
||||
RNA_def_property_ui_text(prop, "Axis Y", "Rotate pivot on Y axis in degrees.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "axis_z", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "axis_z", PROP_FLOAT, PROP_ANGLE); // XXX - convert to radians
|
||||
RNA_def_property_float_sdna(prop, NULL, "axZ");
|
||||
RNA_def_property_range(prop, -360.0, 360.f);
|
||||
RNA_def_property_ui_text(prop, "Axis Z", "Rotate pivot on Z axis in degrees.");
|
||||
@@ -1135,73 +1135,73 @@ static void rna_def_constraint_transform(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Extrapolate Motion", "Extrapolate ranges.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "from_min_x", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "from_min_x", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "from_min[0]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "From Minimum X", "Bottom range of X axis source motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "from_min_y", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "from_min_y", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "from_min[1]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "From Minimum Y", "Bottom range of Y axis source motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "from_min_z", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "from_min_z", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "from_min[2]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "From Minimum Z", "Bottom range of Z axis source motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "from_max_x", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "from_max_x", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "from_max[0]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "From Maximum X", "Top range of X axis source motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "from_max_y", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "from_max_y", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "from_max[1]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "From Maximum Y", "Top range of Y axis source motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "from_max_z", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "from_max_z", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "from_max[2]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "From Maximum Z", "Top range of Z axis source motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "to_min_x", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "to_min_x", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "to_min[0]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "To Minimum X", "Bottom range of X axis destination motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "to_min_y", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "to_min_y", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "to_min[1]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "To Minimum Y", "Bottom range of Y axis destination motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "to_min_z", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "to_min_z", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "to_min[2]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "To Minimum Z", "Bottom range of Z axis destination motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "to_max_x", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "to_max_x", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "to_max[0]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "To Maximum X", "Top range of X axis destination motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "to_max_y", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "to_max_y", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "to_max[1]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "To Maximum Y", "Top range of Y axis destination motion.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "to_max_z", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "to_max_z", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "to_max[2]");
|
||||
RNA_def_property_range(prop, 0.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "To Maximum Z", "Top range of Z axis destination motion.");
|
||||
@@ -1247,37 +1247,37 @@ static void rna_def_constraint_location_limit(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Maximum Z", "Use the maximum Z value.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "minimum_x", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "minimum_x", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "xmin");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Minimum X", "Lowest X value to allow.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "minimum_y", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "minimum_y", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "ymin");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Minimum Y", "Lowest Y value to allow.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "minimum_z", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "minimum_z", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "zmin");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Minimum Z", "Lowest Z value to allow.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "maximum_x", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "maximum_x", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "xmax");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Maximum X", "Highest X value to allow.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "maximum_y", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "maximum_y", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "ymax");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Maximum Y", "Highest Y value to allow.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "maximum_z", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "maximum_z", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "zmax");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Maximum Z", "Highest Z value to allow.");
|
||||
@@ -1313,37 +1313,37 @@ static void rna_def_constraint_rotation_limit(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Limit Z", "Use the minimum Z value.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "minimum_x", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "minimum_x", PROP_FLOAT, PROP_ANGLE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "xmin");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Minimum X", "Lowest X value to allow.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "minimum_y", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "minimum_y", PROP_FLOAT, PROP_ANGLE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "ymin");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Minimum Y", "Lowest Y value to allow.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "minimum_z", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "minimum_z", PROP_FLOAT, PROP_ANGLE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "zmin");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Minimum Z", "Lowest Z value to allow.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "maximum_x", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "maximum_x", PROP_FLOAT, PROP_ANGLE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "xmax");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Maximum X", "Highest X value to allow.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "maximum_y", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "maximum_y", PROP_FLOAT, PROP_ANGLE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "ymax");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Maximum Y", "Highest Y value to allow.");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "maximum_z", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "maximum_z", PROP_FLOAT, PROP_ANGLE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "zmax");
|
||||
RNA_def_property_range(prop, -1000.0, 1000.f);
|
||||
RNA_def_property_ui_text(prop, "Maximum Z", "Highest Z value to allow.");
|
||||
@@ -1462,7 +1462,7 @@ static void rna_def_constraint_distance_limit(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Sub-Target", "");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update");
|
||||
|
||||
prop= RNA_def_property(srna, "distance", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "distance", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "dist");
|
||||
RNA_def_property_range(prop, 0.0, 100.f);
|
||||
RNA_def_property_ui_text(prop, "Distance", "Radius of limiting sphere.");
|
||||
@@ -1502,7 +1502,7 @@ static void rna_def_constraint_shrinkwrap(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Shrinkwrap Type", "Selects type of shrinkwrap algorithm for target position");
|
||||
RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
|
||||
|
||||
prop= RNA_def_property(srna, "distance", PROP_FLOAT, PROP_NONE);
|
||||
prop= RNA_def_property(srna, "distance", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "dist");
|
||||
RNA_def_property_range(prop, 0.0, 100.f);
|
||||
RNA_def_property_ui_text(prop, "Distance", "Distance to Target.");
|
||||
|
||||
@@ -448,6 +448,40 @@ static void rna_def_tool_settings(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Vertex Group Weight", "Weight to assign in vertex groups.");
|
||||
}
|
||||
|
||||
|
||||
static void rna_def_unit_settings(BlenderRNA *brna)
|
||||
{
|
||||
StructRNA *srna;
|
||||
PropertyRNA *prop;
|
||||
|
||||
static EnumPropertyItem unit_systems[] = {
|
||||
{USER_UNIT_NONE, "NONE", 0, "None", ""},
|
||||
{USER_UNIT_METRIC, "METRIC", 0, "Metric", ""},
|
||||
{USER_UNIT_IMPERIAL, "IMPERIAL", 0, "Imperial", ""},
|
||||
{0, NULL, 0, NULL, NULL}};
|
||||
|
||||
srna= RNA_def_struct(brna, "UnitSettings", NULL);
|
||||
RNA_def_struct_ui_text(srna, "Unit Settings", "");
|
||||
|
||||
/* Units */
|
||||
prop= RNA_def_property(srna, "system", PROP_ENUM, PROP_NONE);
|
||||
RNA_def_property_enum_items(prop, unit_systems);
|
||||
RNA_def_property_ui_text(prop, "Unit System", "The unit system to use for button display.");
|
||||
RNA_def_property_update(prop, NC_WINDOW, NULL);
|
||||
|
||||
prop= RNA_def_property(srna, "scale_length", PROP_FLOAT, PROP_UNSIGNED);
|
||||
RNA_def_property_ui_text(prop, "Unit Scale", "Scale to use when converting between blender units and dimensions.");
|
||||
RNA_def_property_range(prop, 0.00001, 100000.0);
|
||||
RNA_def_property_ui_range(prop, 0.001, 100.0, 0.1, 3);
|
||||
RNA_def_property_update(prop, NC_WINDOW, NULL);
|
||||
|
||||
prop= RNA_def_property(srna, "use_separate", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_UNIT_OPT_SPLIT);
|
||||
RNA_def_property_ui_text(prop, "Separate Units", "Display units in pairs.");
|
||||
RNA_def_property_update(prop, NC_WINDOW, NULL);
|
||||
}
|
||||
|
||||
|
||||
void rna_def_render_layer_common(StructRNA *srna, int scene)
|
||||
{
|
||||
PropertyRNA *prop;
|
||||
@@ -1749,6 +1783,12 @@ void RNA_def_scene(BlenderRNA *brna)
|
||||
RNA_def_property_pointer_sdna(prop, NULL, "toolsettings");
|
||||
RNA_def_property_struct_type(prop, "ToolSettings");
|
||||
RNA_def_property_ui_text(prop, "Tool Settings", "");
|
||||
|
||||
/* Unit Settings */
|
||||
prop= RNA_def_property(srna, "unit_settings", PROP_POINTER, PROP_NEVER_NULL);
|
||||
RNA_def_property_pointer_sdna(prop, NULL, "unit");
|
||||
RNA_def_property_struct_type(prop, "UnitSettings");
|
||||
RNA_def_property_ui_text(prop, "Unit Settings", "Unit editing settings");
|
||||
|
||||
/* Render Data */
|
||||
prop= RNA_def_property(srna, "render_data", PROP_POINTER, PROP_NEVER_NULL);
|
||||
@@ -1769,6 +1809,7 @@ void RNA_def_scene(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Game Data", "");
|
||||
|
||||
rna_def_tool_settings(brna);
|
||||
rna_def_unit_settings(brna);
|
||||
rna_def_scene_render_data(brna);
|
||||
rna_def_scene_game_data(brna);
|
||||
rna_def_scene_render_layer(brna);
|
||||
|
||||
@@ -1733,12 +1733,6 @@ static void rna_def_userdef_edit(BlenderRNA *brna)
|
||||
{BEZT_IPO_BEZ, "BEZIER", 0, "Bezier", ""},
|
||||
{0, NULL, 0, NULL, NULL}};
|
||||
|
||||
static EnumPropertyItem unit_systems[] = {
|
||||
{USER_UNIT_NONE, "NONE", 0, "None", ""},
|
||||
{USER_UNIT_METRIC, "METRIC", 0, "Metric", ""},
|
||||
{USER_UNIT_IMPERIAL, "IMPERIAL", 0, "Imperial", ""},
|
||||
{0, NULL, 0, NULL, NULL}};
|
||||
|
||||
srna= RNA_def_struct(brna, "UserPreferencesEdit", NULL);
|
||||
RNA_def_struct_sdna(srna, "UserDef");
|
||||
RNA_def_struct_nested(brna, srna, "UserPreferences");
|
||||
@@ -1779,23 +1773,6 @@ static void rna_def_userdef_edit(BlenderRNA *brna)
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_GLOBALUNDO);
|
||||
RNA_def_property_ui_text(prop, "Global Undo", "Global undo works by keeping a full copy of the file itself in memory, so takes extra memory.");
|
||||
|
||||
/* Units */
|
||||
prop= RNA_def_property(srna, "unit_system", PROP_ENUM, PROP_NONE);
|
||||
RNA_def_property_enum_items(prop, unit_systems);
|
||||
RNA_def_property_ui_text(prop, "Unit System", "The unit system to use for button display.");
|
||||
RNA_def_property_update(prop, NC_WINDOW, NULL);
|
||||
|
||||
prop= RNA_def_property(srna, "unit_scale_length", PROP_FLOAT, PROP_UNSIGNED);
|
||||
RNA_def_property_ui_text(prop, "Unit Scale", "Scale to use when converting between blender units and dimensions.");
|
||||
RNA_def_property_range(prop, 0.00001, 100000.0);
|
||||
RNA_def_property_ui_range(prop, 0.001, 100.0, 0.1, 3);
|
||||
RNA_def_property_update(prop, NC_WINDOW, NULL);
|
||||
|
||||
prop= RNA_def_property(srna, "use_unit_split", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "unit_flag", USER_UNIT_OPT_SPLIT);
|
||||
RNA_def_property_ui_text(prop, "Separate Units", "Display units in pairs.");
|
||||
RNA_def_property_update(prop, NC_WINDOW, NULL);
|
||||
|
||||
/* snap to grid */
|
||||
prop= RNA_def_property(srna, "snap_translate", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_AUTOGRABGRID);
|
||||
|
||||
Reference in New Issue
Block a user