[Bf-blender-cvs] [c064bc2] openvdb: Add a dedicated poll function for the cache operators.
Kévin Dietrich
noreply at git.blender.org
Sun Jun 7 11:38:48 CEST 2015
Commit: c064bc22021ce5939df1dfd48cce47a7f09b2f5e
Author: Kévin Dietrich
Date: Sun Jun 7 02:40:01 2015 +0200
Branches: openvdb
https://developer.blender.org/rBc064bc22021ce5939df1dfd48cce47a7f09b2f5e
Add a dedicated poll function for the cache operators.
===================================================================
M source/blender/editors/object/object_modifier.c
===================================================================
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index ddf5cd8..2ac16c4 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -2304,6 +2304,24 @@ void OBJECT_OT_laplaciandeform_bind(wmOperatorType *ot)
/************************ OpenVDB smoke convertor operator *********************/
+static int openvdb_cache_poll(bContext *C)
+{
+ Object *ob = CTX_data_active_object(C);
+ SmokeModifierData *smd = NULL;
+
+ if (!ob) {
+ return false;
+ }
+
+ smd = (SmokeModifierData *)modifiers_findByType(ob, eModifierType_Smoke);
+
+ if (!smd) {
+ return false;
+ }
+
+ return true;
+}
+
typedef struct SmokeExportJob {
/* from wmJob */
void *owner;
@@ -2378,7 +2396,7 @@ static void smoke_export_endjob(void *customdata)
static int smoke_vdb_export_exec(bContext *C, wmOperator *op)
{
- Object *ob = ED_object_active_context(C);
+ Object *ob = CTX_data_active_object(C);
SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, eModifierType_Smoke);
Scene *scene = CTX_data_scene(C);
wmJob *wm_job;
@@ -2452,7 +2470,7 @@ void OBJECT_OT_smoke_vdb_export(wmOperatorType *ot)
ot->idname = "OBJECT_OT_smoke_vdb_export";
ot->invoke = smoke_vdb_export_invoke;
- ot->poll = ED_operator_object_active_editable;
+ ot->poll = openvdb_cache_poll;
ot->exec = smoke_vdb_export_exec;
/* flags */
@@ -2478,7 +2496,7 @@ static void smoke_transform_startjob(void *customdata, short *stop, short *do_up
static int smoke_transform_exec(bContext *C, wmOperator *op)
{
- Object *ob = ED_object_active_context(C);
+ Object *ob = CTX_data_active_object(C);
SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, eModifierType_Smoke);
Scene *scene = CTX_data_scene(C);
wmJob *wm_job;
@@ -2515,7 +2533,7 @@ void OBJECT_OT_smoke_vdb_transform_update(wmOperatorType *ot)
ot->description = "Update transformation matrices for all grids in the file";
ot->idname = "OBJECT_OT_smoke_vdb_transform_update";
- ot->poll = ED_operator_object_active_editable;
+ ot->poll = openvdb_cache_poll;
ot->exec = smoke_transform_exec;
/* flags */
@@ -2555,7 +2573,7 @@ static OpenVDBCache *openvdb_cache_new(void)
static int openvdb_cache_add_exec(bContext *C, wmOperator *op)
{
- Object *ob = ED_object_active_context(C);
+ Object *ob = CTX_data_active_object(C);
SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, eModifierType_Smoke);
SmokeDomainSettings *sds = smd->domain;
OpenVDBCache *cache, *cache_new;
@@ -2590,7 +2608,7 @@ void OBJECT_OT_openvdb_cache_add(wmOperatorType *ot)
ot->idname = "OBJECT_OT_openvdb_cache_add";
/* api callbacks */
- ot->poll = ED_operator_object_active_editable;
+ ot->poll = openvdb_cache_poll;
ot->exec = openvdb_cache_add_exec;
/* flags */
@@ -2599,7 +2617,7 @@ void OBJECT_OT_openvdb_cache_add(wmOperatorType *ot)
static int openvdb_cache_remove_exec(bContext *C, wmOperator *op)
{
- Object *ob = ED_object_active_context(C);
+ Object *ob = CTX_data_active_object(C);
SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, eModifierType_Smoke);
SmokeDomainSettings *sds = smd->domain;
OpenVDBCache *cache, *cache_prev = NULL, *cache_next = NULL;
@@ -2639,7 +2657,7 @@ void OBJECT_OT_openvdb_cache_remove(wmOperatorType *ot)
ot->idname = "OBJECT_OT_openvdb_cache_remove";
/* api callbacks */
- ot->poll = ED_operator_object_active_editable;
+ ot->poll = openvdb_cache_poll;
ot->exec = openvdb_cache_remove_exec;
/* flags */
@@ -2653,7 +2671,7 @@ enum {
static int openvdb_cache_move_exec(bContext *C, wmOperator *op)
{
- Object *ob = ED_object_active_context(C);
+ Object *ob = CTX_data_active_object(C);
SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, eModifierType_Smoke);
SmokeDomainSettings *sds = smd->domain;
OpenVDBCache *cache;
@@ -2695,7 +2713,7 @@ void OBJECT_OT_openvdb_cache_move(wmOperatorType *ot)
ot->description = "Move levelset filter up or down the list";
ot->idname = "OBJECT_OT_openvdb_cache_move";
- ot->poll = ED_operator_object_active_editable;
+ ot->poll = openvdb_cache_poll;
ot->exec = openvdb_cache_move_exec;
/* flags */
More information about the Bf-blender-cvs
mailing list