~ubuntu-branches/ubuntu/trusty/blender/trusty

« back to all changes in this revision

Viewing changes to source/blender/makesrna/intern/rna_controller.c

  • Committer: Package Import Robot
  • Author(s): Jeremy Bicha
  • Date: 2013-03-06 12:08:47 UTC
  • mfrom: (1.5.1) (14.1.8 experimental)
  • Revision ID: package-import@ubuntu.com-20130306120847-frjfaryb2zrotwcg
Tags: 2.66a-1ubuntu1
* Resynchronize with Debian (LP: #1076930, #1089256, #1052743, #999024,
  #1122888, #1147084)
* debian/control:
  - Lower build-depends on libavcodec-dev since we're not
    doing the libav9 transition in Ubuntu yet

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
        {CONT_LOGIC_XNOR, "LOGIC_XNOR", 0, "Xnor", "Logic Xnor"},
44
44
        {CONT_EXPRESSION, "EXPRESSION", 0, "Expression", ""},
45
45
        {CONT_PYTHON, "PYTHON", 0, "Python", ""},
46
 
        {0, NULL, 0, NULL, NULL}};
 
46
        {0, NULL, 0, NULL, NULL}
 
47
};
47
48
 
48
49
#ifdef RNA_RUNTIME
49
50
 
50
51
#include "BKE_sca.h"
51
52
#include "DNA_actuator_types.h"
52
53
 
53
 
static struct StructRNA* rna_Controller_refine(struct PointerRNA *ptr)
 
54
static StructRNA *rna_Controller_refine(struct PointerRNA *ptr)
54
55
{
55
 
        bController *controller = (bController*)ptr->data;
 
56
        bController *controller = (bController *)ptr->data;
56
57
 
57
58
        switch (controller->type) {
58
 
        case CONT_LOGIC_AND:
59
 
                return &RNA_AndController;
60
 
        case CONT_LOGIC_OR:
61
 
                return &RNA_OrController;
62
 
        case CONT_LOGIC_NAND:
63
 
                return &RNA_NandController;
64
 
        case CONT_LOGIC_NOR:
65
 
                return &RNA_NorController;
66
 
        case CONT_LOGIC_XOR:
67
 
                return &RNA_XorController;
68
 
        case CONT_LOGIC_XNOR:
69
 
                return &RNA_XnorController;
70
 
        case CONT_EXPRESSION:
71
 
                return &RNA_ExpressionController;
72
 
        case CONT_PYTHON:
73
 
                return &RNA_PythonController;
74
 
        default:
75
 
                return &RNA_Controller;
 
59
                case CONT_LOGIC_AND:
 
60
                        return &RNA_AndController;
 
61
                case CONT_LOGIC_OR:
 
62
                        return &RNA_OrController;
 
63
                case CONT_LOGIC_NAND:
 
64
                        return &RNA_NandController;
 
65
                case CONT_LOGIC_NOR:
 
66
                        return &RNA_NorController;
 
67
                case CONT_LOGIC_XOR:
 
68
                        return &RNA_XorController;
 
69
                case CONT_LOGIC_XNOR:
 
70
                        return &RNA_XnorController;
 
71
                case CONT_EXPRESSION:
 
72
                        return &RNA_ExpressionController;
 
73
                case CONT_PYTHON:
 
74
                        return &RNA_PythonController;
 
75
                default:
 
76
                        return &RNA_Controller;
76
77
        }
77
78
}
78
79
 
79
 
void rna_Constroller_name_set(PointerRNA *ptr, const char *value)
 
80
static void rna_Constroller_name_set(PointerRNA *ptr, const char *value)
80
81
{
81
82
        bController *cont = (bController *)ptr->data;
82
83
 
116
117
        bController *cont = (bController *)ptr->data;
117
118
        int bit;
118
119
 
119
 
        for (bit = 0; bit<32; bit++) {
120
 
                if (cont->state_mask & (1<<bit))
121
 
                        return bit+1;
 
120
        for (bit = 0; bit < 32; bit++) {
 
121
                if (cont->state_mask & (1 << bit))
 
122
                        return bit + 1;
122
123
        }
123
124
        return 0;
124
125
}
150
151
        bController *cont = (bController *)ptr->data;
151
152
        int i;
152
153
 
153
 
        memset(values, 0, sizeof(int)*OB_MAX_STATES);
154
 
        for (i = 0; i<OB_MAX_STATES; i++)
155
 
                values[i] = (cont->state_mask & (1<<i));
 
154
        memset(values, 0, sizeof(int) * OB_MAX_STATES);
 
155
        for (i = 0; i < OB_MAX_STATES; i++)
 
156
                values[i] = (cont->state_mask & (1 << i));
156
157
}
157
158
 
158
159
static void rna_Controller_state_set(PointerRNA *ptr, const int *values)
161
162
        int i, tot = 0;
162
163
 
163
164
        /* ensure we always have some state selected */
164
 
        for (i = 0; i<OB_MAX_STATES; i++)
 
165
        for (i = 0; i < OB_MAX_STATES; i++)
165
166
                if (values[i])
166
167
                        tot++;
167
168
        
169
170
                return;
170
171
 
171
172
        /* only works for one state at once */
172
 
        if (tot>1)
 
173
        if (tot > 1)
173
174
                return;
174
175
 
175
 
        for (i = 0; i<OB_MAX_STATES; i++) {
176
 
                if (values[i]) cont->state_mask |= (1<<i);
177
 
                else cont->state_mask &= ~(1<<i);
 
176
        for (i = 0; i < OB_MAX_STATES; i++) {
 
177
                if (values[i]) cont->state_mask |= (1 << i);
 
178
                else cont->state_mask &= ~(1 << i);
178
179
        }
179
180
}
180
181
#endif
189
190
        static EnumPropertyItem python_controller_modes[] = {
190
191
                {CONT_PY_SCRIPT, "SCRIPT", 0, "Script", ""},
191
192
                {CONT_PY_MODULE, "MODULE", 0, "Module", ""},
192
 
                {0, NULL, 0, NULL, NULL}};
 
193
                {0, NULL, 0, NULL, NULL}
 
194
        };
193
195
 
194
196
        /* Controller */
195
197
        srna = RNA_def_struct(brna, "Controller", NULL);
238
240
        /* State */
239
241
        
240
242
        /* array of OB_MAX_STATES */
241
 
        /*prop= RNA_def_property(srna, "states", PROP_BOOLEAN, PROP_LAYER_MEMBER); */
 
243
        /*prop = RNA_def_property(srna, "states", PROP_BOOLEAN, PROP_LAYER_MEMBER); */
242
244
        /*RNA_def_property_array(prop, OB_MAX_STATES); */
243
245
        /*RNA_def_property_clear_flag(prop, PROP_EDITABLE); */
244
246
        /*RNA_def_property_ui_text(prop, "", "Set Controller state index (1 to 30)"); */
265
267
        RNA_def_property_update(prop, NC_LOGIC, NULL);
266
268
 
267
269
        /* Python Controller */
268
 
        srna = RNA_def_struct(brna, "PythonController", "Controller" );
 
270
        srna = RNA_def_struct(brna, "PythonController", "Controller");
269
271
        RNA_def_struct_sdna_from(srna, "bPythonCont", "data");
270
272
        RNA_def_struct_ui_text(srna, "Python Controller", "Controller executing a python script");
271
273