Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/rna_object_api.c
| Show First 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | |||||
| #include "DNA_meshdata_types.h" | #include "DNA_meshdata_types.h" | ||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| #include "DNA_view3d_types.h" | #include "DNA_view3d_types.h" | ||||
| #include "MEM_guardedalloc.h" | #include "MEM_guardedalloc.h" | ||||
| static void rna_Object_select_set(Object *ob, bContext *C, ReportList *reports, int action) | static void rna_Object_select_set(Object *ob, bContext *C, ReportList *reports, int action) | ||||
| { | { | ||||
| SceneLayer *scene_layer = CTX_data_scene_layer(C); | ViewLayer *view_layer = CTX_data_view_layer(C); | ||||
| Base *base = BKE_scene_layer_base_find(scene_layer, ob); | Base *base = BKE_view_layer_base_find(view_layer, ob); | ||||
| if (!base) { | if (!base) { | ||||
| BKE_reportf(reports, RPT_ERROR, "Object '%s' not in Render Layer '%s'!", ob->id.name + 2, scene_layer->name); | BKE_reportf(reports, RPT_ERROR, "Object '%s' not in Render Layer '%s'!", ob->id.name + 2, view_layer->name); | ||||
| return; | return; | ||||
| } | } | ||||
| if (action == 2) { /* TOGGLE */ | if (action == 2) { /* TOGGLE */ | ||||
| if ((base->flag & BASE_SELECTED) != 0) { | if ((base->flag & BASE_SELECTED) != 0) { | ||||
| action = 1; /* DESELECT */ | action = 1; /* DESELECT */ | ||||
| } | } | ||||
| else { | else { | ||||
| action = 0; /* SELECT */ | action = 0; /* SELECT */ | ||||
| } | } | ||||
| } | } | ||||
| switch (action) { | switch (action) { | ||||
| case 1: /* DESELECT */ | case 1: /* DESELECT */ | ||||
| base->flag &= ~BASE_SELECTED; | base->flag &= ~BASE_SELECTED; | ||||
| break; | break; | ||||
| case 0: /* SELECT */ | case 0: /* SELECT */ | ||||
| default: | default: | ||||
| BKE_scene_layer_base_select(scene_layer, base); | BKE_view_layer_base_select(view_layer, base); | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| static int rna_Object_select_get(Object *ob, bContext *C, ReportList *reports) | static int rna_Object_select_get(Object *ob, bContext *C, ReportList *reports) | ||||
| { | { | ||||
| SceneLayer *scene_layer = CTX_data_scene_layer(C); | ViewLayer *view_layer = CTX_data_view_layer(C); | ||||
| Base *base = BKE_scene_layer_base_find(scene_layer, ob); | Base *base = BKE_view_layer_base_find(view_layer, ob); | ||||
| if (!base) { | if (!base) { | ||||
| BKE_reportf(reports, RPT_ERROR, "Object '%s' not in Render Layer '%s'!", ob->id.name + 2, scene_layer->name); | BKE_reportf(reports, RPT_ERROR, "Object '%s' not in Render Layer '%s'!", ob->id.name + 2, view_layer->name); | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| return ((base->flag & BASE_SELECTED) != 0) ? 1 : 0; | return ((base->flag & BASE_SELECTED) != 0) ? 1 : 0; | ||||
| } | } | ||||
| static int rna_Object_visible_get(Object *ob, bContext *C, ReportList *reports) | static int rna_Object_visible_get(Object *ob, bContext *C, ReportList *reports) | ||||
| { | { | ||||
| SceneLayer *scene_layer = CTX_data_scene_layer(C); | ViewLayer *view_layer = CTX_data_view_layer(C); | ||||
| Base *base = BKE_scene_layer_base_find(scene_layer, ob); | Base *base = BKE_view_layer_base_find(view_layer, ob); | ||||
| if (!base) { | if (!base) { | ||||
| BKE_reportf(reports, RPT_ERROR, "Object '%s' not in Render Layer '%s'!", ob->id.name + 2, scene_layer->name); | BKE_reportf(reports, RPT_ERROR, "Object '%s' not in Render Layer '%s'!", ob->id.name + 2, view_layer->name); | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| return ((base->flag & BASE_VISIBLED) != 0) ? 1 : 0; | return ((base->flag & BASE_VISIBLED) != 0) ? 1 : 0; | ||||
| } | } | ||||
| /* Convert a given matrix from a space to another (using the object and/or a bone as reference). */ | /* Convert a given matrix from a space to another (using the object and/or a bone as reference). */ | ||||
| static void rna_Scene_mat_convert_space(Object *ob, ReportList *reports, bPoseChannel *pchan, | static void rna_Scene_mat_convert_space(Object *ob, ReportList *reports, bPoseChannel *pchan, | ||||
| Show All 40 Lines | static void rna_Object_camera_fit_coords( | ||||
| Object *ob, Scene *scene, int num_cos, float *cos, float co_ret[3], float *scale_ret) | Object *ob, Scene *scene, int num_cos, float *cos, float co_ret[3], float *scale_ret) | ||||
| { | { | ||||
| BKE_camera_view_frame_fit_to_coords(scene, (const float (*)[3])cos, num_cos / 3, ob, co_ret, scale_ret); | BKE_camera_view_frame_fit_to_coords(scene, (const float (*)[3])cos, num_cos / 3, ob, co_ret, scale_ret); | ||||
| } | } | ||||
| /* copied from Mesh_getFromObject and adapted to RNA interface */ | /* copied from Mesh_getFromObject and adapted to RNA interface */ | ||||
| /* settings: 0 - preview, 1 - render */ | /* settings: 0 - preview, 1 - render */ | ||||
| static Mesh *rna_Object_to_mesh( | static Mesh *rna_Object_to_mesh( | ||||
| Object *ob, bContext *C, ReportList *reports, Scene *sce, SceneLayer *scene_layer, | Object *ob, bContext *C, ReportList *reports, Scene *sce, ViewLayer *view_layer, | ||||
| int apply_modifiers, int settings, int calc_tessface, int calc_undeformed) | int apply_modifiers, int settings, int calc_tessface, int calc_undeformed) | ||||
| { | { | ||||
| Main *bmain = CTX_data_main(C); | Main *bmain = CTX_data_main(C); | ||||
| return rna_Main_meshes_new_from_object(bmain, reports, sce, scene_layer, ob, apply_modifiers, settings, calc_tessface, calc_undeformed); | return rna_Main_meshes_new_from_object(bmain, reports, sce, view_layer, ob, apply_modifiers, settings, calc_tessface, calc_undeformed); | ||||
| } | } | ||||
| /* mostly a copy from convertblender.c */ | /* mostly a copy from convertblender.c */ | ||||
| static void dupli_render_particle_set(EvaluationContext *eval_ctx, Scene *scene, Object *ob, int level, int enable) | static void dupli_render_particle_set(EvaluationContext *eval_ctx, Scene *scene, Object *ob, int level, int enable) | ||||
| { | { | ||||
| /* ugly function, but we need to set particle systems to their render | /* ugly function, but we need to set particle systems to their render | ||||
| * settings before calling object_duplilist, to get render level duplis */ | * settings before calling object_duplilist, to get render level duplis */ | ||||
| Group *group; | Group *group; | ||||
| ▲ Show 20 Lines • Show All 421 Lines • ▼ Show 20 Lines | #endif | ||||
| RNA_def_parameter_flags(parm, 0, PARM_OUTPUT); | RNA_def_parameter_flags(parm, 0, PARM_OUTPUT); | ||||
| /* mesh */ | /* mesh */ | ||||
| func = RNA_def_function(srna, "to_mesh", "rna_Object_to_mesh"); | func = RNA_def_function(srna, "to_mesh", "rna_Object_to_mesh"); | ||||
| RNA_def_function_ui_description(func, "Create a Mesh data-block with modifiers applied"); | RNA_def_function_ui_description(func, "Create a Mesh data-block with modifiers applied"); | ||||
| RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_CONTEXT); | RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_CONTEXT); | ||||
| parm = RNA_def_pointer(func, "scene", "Scene", "", "Scene within which to evaluate modifiers"); | parm = RNA_def_pointer(func, "scene", "Scene", "", "Scene within which to evaluate modifiers"); | ||||
| RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED); | RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED); | ||||
| parm = RNA_def_pointer(func, "scene_layer", "SceneLayer", "", "Scene layer within which to evaluate modifiers"); | parm = RNA_def_pointer(func, "view_layer", "ViewLayer", "", "Scene layer within which to evaluate modifiers"); | ||||
| RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED); | RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED); | ||||
| parm = RNA_def_boolean(func, "apply_modifiers", 0, "", "Apply modifiers"); | parm = RNA_def_boolean(func, "apply_modifiers", 0, "", "Apply modifiers"); | ||||
| RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); | RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); | ||||
| parm = RNA_def_enum(func, "settings", mesh_type_items, 0, "", "Modifier settings to apply"); | parm = RNA_def_enum(func, "settings", mesh_type_items, 0, "", "Modifier settings to apply"); | ||||
| RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); | RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); | ||||
| RNA_def_boolean(func, "calc_tessface", true, "Calculate Tessellation", "Calculate tessellation faces"); | RNA_def_boolean(func, "calc_tessface", true, "Calculate Tessellation", "Calculate tessellation faces"); | ||||
| RNA_def_boolean(func, "calc_undeformed", false, "Calculate Undeformed", "Calculate undeformed vertex coordinates"); | RNA_def_boolean(func, "calc_undeformed", false, "Calculate Undeformed", "Calculate undeformed vertex coordinates"); | ||||
| parm = RNA_def_pointer(func, "mesh", "Mesh", "", | parm = RNA_def_pointer(func, "mesh", "Mesh", "", | ||||
| ▲ Show 20 Lines • Show All 136 Lines • Show Last 20 Lines | |||||