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:
authorCampbell Barton <ideasman42@gmail.com>2011-03-16 11:53:35 +0300
committerCampbell Barton <ideasman42@gmail.com>2011-03-16 11:53:35 +0300
commitda18391ac48e3a08120563f1a8f5aef167999e63 (patch)
tree21df7eca1c66b87dacc257584f95bf96002b2b04 /source/blender/makesrna/intern/rna_object_api.c
parent934c2a06fe9041b82b9b5d9f1bde95efbc2065c8 (diff)
api function added for [#26481] Export to X3D of IndexedFaceSet should use X3D 's DEF USE mechanism
Object.is_modified(scene, 'PREVIEW') function for python exporters to check if any modifiers or shape keys are applied (weather the original mesh can be used for exporters).
Diffstat (limited to 'source/blender/makesrna/intern/rna_object_api.c')
-rw-r--r--source/blender/makesrna/intern/rna_object_api.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c
index 2d9ea89fa2f..2a369ba9044 100644
--- a/source/blender/makesrna/intern/rna_object_api.c
+++ b/source/blender/makesrna/intern/rna_object_api.c
@@ -39,6 +39,7 @@
#include "RNA_define.h"
#include "DNA_object_types.h"
+#include "DNA_modifier_types.h"
// #include "BLO_sys_types.h" /* needed for intptr_t used in ED_mesh.h */
@@ -82,7 +83,7 @@ static Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int
Mesh *tmpmesh;
Curve *tmpcu = NULL;
Object *tmpobj = NULL;
- int render = settings, i;
+ int render = settings == eModifierMode_Render, i;
int cage = !apply_modifiers;
/* perform the mesh extraction based on type */
@@ -421,6 +422,11 @@ void rna_ObjectBase_layers_from_view(Base *base, View3D *v3d)
base->lay= base->object->lay= v3d->lay;
}
+int rna_Object_is_modified(Object *ob, Scene *scene, int settings)
+{
+ return object_is_modified(scene, ob) & settings;
+}
+
#else
void RNA_api_object(StructRNA *srna)
@@ -429,8 +435,8 @@ void RNA_api_object(StructRNA *srna)
PropertyRNA *parm;
static EnumPropertyItem mesh_type_items[] = {
- {0, "PREVIEW", 0, "Preview", "Apply modifier preview settings"},
- {1, "RENDER", 0, "Render", "Apply modifier render settings"},
+ {eModifierMode_Realtime, "PREVIEW", 0, "Preview", "Apply modifier preview settings"},
+ {eModifierMode_Render, "RENDER", 0, "Render", "Apply modifier render settings"},
{0, NULL, 0, NULL, NULL}
};
@@ -500,7 +506,17 @@ void RNA_api_object(StructRNA *srna)
RNA_def_function_ui_description(func, "Determine if object is visible in a given scene.");
parm= RNA_def_pointer(func, "scene", "Scene", "", "");
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
- parm= RNA_def_boolean(func, "is_visible", 0, "", "Object visibility.");
+ parm= RNA_def_boolean(func, "result", 0, "", "Object visibility.");
+ RNA_def_function_return(func, parm);
+
+ /* utility function for checking if the object is modified */
+ func= RNA_def_function(srna, "is_modified", "rna_Object_is_modified");
+ RNA_def_function_ui_description(func, "Determine if this object is modified from the base mesh data.");
+ parm= RNA_def_pointer(func, "scene", "Scene", "", "");
+ RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
+ parm= RNA_def_enum(func, "settings", mesh_type_items, 0, "", "Modifier settings to apply.");
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ parm= RNA_def_boolean(func, "result", 0, "", "Object visibility.");
RNA_def_function_return(func, parm);
}