Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesdna/DNA_group_types.h
| Show All 28 Lines | |||||
| * \ingroup DNA | * \ingroup DNA | ||||
| * | * | ||||
| * \brief Object groups, one object can be in many groups at once. | * \brief Object groups, one object can be in many groups at once. | ||||
| */ | */ | ||||
| #ifndef __DNA_GROUP_TYPES_H__ | #ifndef __DNA_GROUP_TYPES_H__ | ||||
| #define __DNA_GROUP_TYPES_H__ | #define __DNA_GROUP_TYPES_H__ | ||||
| #include "DNA_defs.h" | |||||
| #include "DNA_listBase.h" | #include "DNA_listBase.h" | ||||
| #include "DNA_ID.h" | #include "DNA_ID.h" | ||||
| struct Object; | struct Object; | ||||
| struct Collection; | |||||
| typedef struct GroupObject { | typedef struct CollectionObject { | ||||
| struct GroupObject *next, *prev; | struct CollectionObject *next, *prev; | ||||
| struct Object *ob; | struct Object *ob; | ||||
| } GroupObject; | } CollectionObject; | ||||
| typedef struct Group { | typedef struct CollectionChild { | ||||
| struct CollectionChild *next, *prev; | |||||
| struct Collection *collection; | |||||
| } CollectionChild; | |||||
| typedef struct Collection { | |||||
| ID id; | ID id; | ||||
| ListBase gobject; /* GroupObject */ | ListBase gobject; /* CollectionObject */ | ||||
| ListBase children; /* CollectionChild */ | |||||
| struct PreviewImage *preview; | struct PreviewImage *preview; | ||||
| /* Bad design, since layers stored in the scenes 'Base' | unsigned int layer DNA_DEPRECATED; | ||||
| * the objects that show in the group can change depending | |||||
| * on the last used scene */ | |||||
| unsigned int layer; | |||||
| float dupli_ofs[3]; | float dupli_ofs[3]; | ||||
| struct SceneCollection *collection; | short flag, pad[3]; | ||||
| struct ViewLayer *view_layer; | |||||
| } Group; | |||||
| #define GROUP_MASTER_COLLECTION(_group) \ | /* Runtime. Cache of objects in this collection and all its | ||||
| (((LayerCollection *)(_group)->view_layer->layer_collections.first)->scene_collection) | * children. This is created on demand when e.g. some physics | ||||
| * simulation needs it, we don't want to have it for every | |||||
| * collections due to memory usage reasons. */ | |||||
| ListBase object_cache; | |||||
| /* Runtime. List of collections that are a parent of this | |||||
| * datablock. */ | |||||
| ListBase parents; | |||||
| /* Deprecated */ | |||||
| struct SceneCollection *collection DNA_DEPRECATED; | |||||
| struct ViewLayer *view_layer DNA_DEPRECATED; | |||||
| } Collection; | |||||
| /* Collection->flag */ | |||||
| enum { | |||||
| COLLECTION_RESTRICT_VIEW = (1 << 0), /* Hidden in viewport. */ | |||||
| COLLECTION_RESTRICT_SELECT = (1 << 1), /* Not selectable in viewport. */ | |||||
| COLLECTION_DISABLED_DEPRECATED = (1 << 2), /* Not used anymore */ | |||||
| COLLECTION_RESTRICT_RENDER = (1 << 3), /* Hidden in renders. */ | |||||
| COLLECTION_HAS_OBJECT_CACHE = (1 << 4), /* Runtime: object_cache is populated. */ | |||||
| COLLECTION_IS_MASTER = (1 << 5), /* Is master collection embedded in the scene. */ | |||||
| }; | |||||
| #endif /* __DNA_GROUP_TYPES_H__ */ | #endif /* __DNA_GROUP_TYPES_H__ */ | ||||