#include "DNA_listBase.h"
#include "DNA_ID.h"
-#include "DNA_scriptlink_types.h"
#ifdef __cplusplus
extern "C" {
struct FluidsimSettings;
struct ParticleSystem;
struct DerivedMesh;
+struct SculptSession;
typedef struct bDeformGroup {
struct bDeformGroup *next, *prev;
typedef struct Object {
ID id;
struct AnimData *adt; /* animation data (must be immediately after id for utilities to use it) */
+
+ struct SculptSession *sculpt;
short type, partype;
int par1, par2, par3; /* can be vertexnrs */
ListBase disp;
ListBase defbase;
ListBase modifiers; /* list of ModifierData structures */
-
- struct Material **mat;
+
+ /* For now just a flag for sculpt mode, eventually we make the other modes local too */
+ int mode, pad2;
+
+ /* materials */
+ struct Material **mat; /* material slots */
+ char *matbits; /* 1 if material linked to object */
+ int totcol; /* copy of mesh or curve or meta */
+ int actcol; /* currently selected material in the UI */
/* rot en drot have to be together! (transform('r' en 's')) */
float loc[3], dloc[3], orig[3];
unsigned int lay; /* copy of Base */
short flag; /* copy of Base */
- short colbits; /* when zero, from obdata */
+ short colbits; /* deprecated */
short transflag, protectflag; /* transformation settings and transform locks */
short trackflag, upflag;
float m_contactProcessingThreshold;
char dt, dtx;
- char totcol; /* copy of mesh or curve or meta */
- char actcol; /* currently selected material in the user interface */
- char empty_drawtype, pad1[3];
+ char empty_drawtype, pad1[5];
float empty_drawsize;
float dupfacesca; /* dupliface scale */
- ScriptLink scriptlink;
ListBase prop;
ListBase sensors;
ListBase controllers;
int lastDataMask; /* the custom data layer mask that was last used to calculate derivedDeform and derivedFinal */
unsigned int state; /* bit masks of game controllers that are active */
unsigned int init_state; /* bit masks of initial state as recorded by the users */
- int pad2;
+
+ int restore_mode; /* Keep track of what mode to return to after edit mode exits */
ListBase gpulamp; /* runtime, for lamps only */
} Object;
#define OB_DONE 1024
#define OB_RADIO 2048
#define OB_FROMGROUP 4096
-#define OB_POSEMODE 8192
/* ob->recalc (flag bits!) */
#define OB_RECALC_OB 1
#define OB_ADS_SHOWCONS (1<<12)
/* object's material channels */
#define OB_ADS_SHOWMATS (1<<13)
+ /* object's marticle channels */
+#define OB_ADS_SHOWPARTS (1<<14)
/* ob->protectflag */
#define OB_LOCK_LOCX 1
#define OB_LOCK_SCALEZ 256
#define OB_LOCK_SCALE 448
+/* ob->mode */
+#define OB_MODE_OBJECT 0
+#define OB_MODE_EDIT 1
+#define OB_MODE_SCULPT 2
+#define OB_MODE_VERTEX_PAINT 4
+#define OB_MODE_WEIGHT_PAINT 8
+#define OB_MODE_TEXTURE_PAINT 16
+#define OB_MODE_PARTICLE_EDIT 32
+#define OB_MODE_POSE 64
+
/* ob->softflag in DNA_object_force.h */
#ifdef __cplusplus