ead4b1162ee667ba1ec3359daa4fecbd7ea3e455
[blender.git] / source / blender / makesrna / intern / rna_object.c
1 /**
2  * $Id$
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  *
20  * Contributor(s): Blender Foundation (2008).
21  *
22  * ***** END GPL LICENSE BLOCK *****
23  */
24
25 #include <stdlib.h>
26
27 #include "RNA_access.h"
28 #include "RNA_define.h"
29 #include "RNA_types.h"
30
31 #include "rna_internal.h"
32
33 #include "DNA_object_types.h"
34 #include "DNA_property_types.h"
35
36 #include "WM_types.h"
37
38 #ifdef RNA_RUNTIME
39
40 #include "BKE_context.h"
41 #include "BKE_depsgraph.h"
42
43 static void rna_Object_update(bContext *C, PointerRNA *ptr)
44 {
45         DAG_object_flush_update(CTX_data_scene(C), ptr->id.data, OB_RECALC_OB);
46 }
47
48 #else
49
50 void RNA_def_object(BlenderRNA *brna)
51 {
52         StructRNA *srna;
53         PropertyRNA *prop;
54         
55         srna= RNA_def_struct(brna, "Object", "ID");
56         RNA_def_struct_ui_text(srna, "Object", "DOC_BROKEN");
57
58         prop= RNA_def_property(srna, "data", PROP_POINTER, PROP_NONE);
59         RNA_def_property_struct_type(prop, "ID");
60         RNA_def_property_ui_text(prop, "Data", "Object data.");
61
62         prop= RNA_def_property(srna, "parent", PROP_POINTER, PROP_NONE);
63         RNA_def_property_ui_text(prop, "Parent", "Parent Object");
64
65         prop= RNA_def_property(srna, "track", PROP_POINTER, PROP_NONE);
66         RNA_def_property_ui_text(prop, "Track", "Object being tracked to define the rotation (Old Track).");
67
68         prop= RNA_def_property(srna, "loc", PROP_FLOAT, PROP_VECTOR);
69         RNA_def_property_ui_text(prop, "Location", "DOC_BROKEN");
70         RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update");
71         
72         prop= RNA_def_property(srna, "rot", PROP_FLOAT, PROP_ROTATION);
73         RNA_def_property_ui_text(prop, "Rotation", "");
74         RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update");
75         
76         prop= RNA_def_property(srna, "size", PROP_FLOAT, PROP_VECTOR);
77         RNA_def_property_ui_text(prop, "Scale", "DOC_BROKEN");
78         RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update");
79
80         prop= RNA_def_property(srna, "ipo", PROP_POINTER, PROP_NONE);
81         RNA_def_property_struct_type(prop, "Ipo");
82         RNA_def_property_ui_text(prop, "Ipo", "DOC_BROKEN");
83
84         prop= RNA_def_property(srna, "constraints", PROP_COLLECTION, PROP_NONE);
85         RNA_def_property_struct_type(prop, "Constraint");
86         RNA_def_property_ui_text(prop, "Constraints", "DOC_BROKEN");
87         
88         prop= RNA_def_property(srna, "modifiers", PROP_COLLECTION, PROP_NONE);
89         RNA_def_property_struct_type(prop, "Modifier");
90         RNA_def_property_ui_text(prop, "Modifiers", "DOC_BROKEN");
91
92         prop= RNA_def_property(srna, "sensors", PROP_COLLECTION, PROP_NONE);
93         RNA_def_property_struct_type(prop, "Sensor");
94         RNA_def_property_ui_text(prop, "Sensors", "DOC_BROKEN");
95
96         prop= RNA_def_property(srna, "controllers", PROP_COLLECTION, PROP_NONE);
97         RNA_def_property_struct_type(prop, "Controller");
98         RNA_def_property_ui_text(prop, "Controllers", "DOC_BROKEN");
99
100         prop= RNA_def_property(srna, "actuators", PROP_COLLECTION, PROP_NONE);
101         RNA_def_property_struct_type(prop, "Actuator");
102         RNA_def_property_ui_text(prop, "Actuators", "DOC_BROKEN");
103
104         prop= RNA_def_property(srna, "game_properties", PROP_COLLECTION, PROP_NONE);
105         RNA_def_property_collection_sdna(prop, NULL, "prop", NULL);
106         RNA_def_property_struct_type(prop, "GameProperty");
107         RNA_def_property_ui_text(prop, "Game Properties", "Game engine properties.");
108 }
109
110 #endif
111