Blender V4.3
DNA_object_types.h File Reference

Object is a sort of wrapper for general info. More...

#include "BLI_utildefines.h"
#include "DNA_object_enums.h"
#include "DNA_customdata_types.h"
#include "DNA_defs.h"
#include "DNA_lineart_types.h"
#include "DNA_listBase.h"
#include "DNA_ID.h"
#include "DNA_action_types.h"

Go to the source code of this file.

Classes

struct  bDeformGroup
 
class  BoundBox
 
struct  ObjectLineArt
 
struct  LightLinkingRuntime
 
struct  LightLinking
 
class  Object
 
struct  ObHook
 

Macros

#define MAX_VGROUP_NAME   64
 
#define SELECT   1
 
#define OB_TYPE_SUPPORT_MATERIAL(_type)
 
#define OB_TYPE_IS_GEOMETRY(_type)
 
#define OB_TYPE_SUPPORT_VGROUP(_type)    (ELEM(_type, OB_MESH, OB_LATTICE, OB_GPENCIL_LEGACY, OB_GREASE_PENCIL))
 
#define OB_TYPE_SUPPORT_EDITMODE(_type)
 
#define OB_TYPE_SUPPORT_PARVERT(_type)    (ELEM(_type, OB_MESH, OB_SURF, OB_CURVES_LEGACY, OB_LATTICE))
 
#define OB_DATA_SUPPORT_EDITMODE(_type)    (ELEM(_type, ID_ME, ID_CU_LEGACY, ID_MB, ID_LT, ID_AR, ID_CV, ID_GP))
 
#define OB_DATA_SUPPORT_ID(_id_type)
 
#define OB_DATA_SUPPORT_ID_CASE
 
#define MAX_DUPLI_RECUR   8
 

Typedefs

typedef struct ObjectRuntimeHandle ObjectRuntimeHandle
 
typedef struct bDeformGroup bDeformGroup
 
typedef struct BoundBox BoundBox
 
typedef struct ObjectLineArt ObjectLineArt
 
typedef struct LightLinkingRuntime LightLinkingRuntime
 
typedef struct LightLinking LightLinking
 
typedef struct Object Object
 
typedef struct ObHook ObHook
 
typedef enum ObjectType ObjectType
 
typedef enum ObjectModifierFlag ObjectModifierFlag
 

Enumerations

enum  { DG_LOCK_WEIGHT = 1 }
 
enum  eObjectLineArt_Usage {
  OBJECT_LRT_INHERIT = 0 , OBJECT_LRT_INCLUDE = (1 << 0) , OBJECT_LRT_OCCLUSION_ONLY = (1 << 1) , OBJECT_LRT_EXCLUDE = (1 << 2) ,
  OBJECT_LRT_INTERSECTION_ONLY = (1 << 3) , OBJECT_LRT_NO_INTERSECTION = (1 << 4) , OBJECT_LRT_FORCE_INTERSECTION = (1 << 5)
}
 
enum  eObjectLineArt_Flags { OBJECT_LRT_OWN_CREASE = (1 << 0) , OBJECT_LRT_OWN_INTERSECTION_PRIORITY = (1 << 1) }
 
enum  ObjectType {
  OB_EMPTY = 0 , OB_MESH = 1 , OB_CURVES_LEGACY = 2 , OB_SURF = 3 ,
  OB_FONT = 4 , OB_MBALL = 5 , OB_LAMP = 10 , OB_CAMERA = 11 ,
  OB_SPEAKER = 12 , OB_LIGHTPROBE = 13 , OB_LATTICE = 22 , OB_ARMATURE = 25 ,
  OB_GPENCIL_LEGACY = 26 , OB_CURVES = 27 , OB_POINTCLOUD = 28 , OB_VOLUME = 29 ,
  OB_GREASE_PENCIL = 30 , OB_TYPE_MAX
}
 
enum  {
  PARTYPE = (1 << 4) - 1 , PAROBJECT = 0 , PARSKEL = 4 , PARVERT1 = 5 ,
  PARVERT3 = 6 , PARBONE = 7
}
 
enum  {
  OB_TRANSFORM_ADJUST_ROOT_PARENT_FOR_VIEW_LOCK = 1 << 0 , OB_TRANSFLAG_UNUSED_1 = 1 << 1 , OB_NEG_SCALE = 1 << 2 , OB_TRANSFLAG_UNUSED_3 = 1 << 3 ,
  OB_DUPLIVERTS = 1 << 4 , OB_DUPLIROT = 1 << 5 , OB_TRANSFLAG_UNUSED_6 = 1 << 6 , OB_TRANSFLAG_UNUSED_7 = 1 << 7 ,
  OB_DUPLICOLLECTION = 1 << 8 , OB_DUPLIFACES = 1 << 9 , OB_DUPLIFACES_SCALE = 1 << 10 , OB_DUPLIPARTS = 1 << 11 ,
  OB_TRANSFLAG_UNUSED_12 = 1 << 12 , OB_NO_CONSTRAINTS = 1 << 13 , OB_DUPLI = OB_DUPLIVERTS | OB_DUPLICOLLECTION | OB_DUPLIFACES | OB_DUPLIPARTS
}
 
enum  {
  OB_POSX = 0 , OB_POSY = 1 , OB_POSZ = 2 , OB_NEGX = 3 ,
  OB_NEGY = 4 , OB_NEGZ = 5
}
 
enum  {
  OB_DRAWBOUNDOX = 1 << 0 , OB_AXIS = 1 << 1 , OB_TEXSPACE = 1 << 2 , OB_DRAWNAME = 1 << 3 ,
  OB_DRAWWIRE = 1 << 5 , OB_DRAW_IN_FRONT = 1 << 6 , OB_DRAWTRANSP = 1 << 7 , OB_DRAW_ALL_EDGES = 1 << 8 ,
  OB_DRAW_NO_SHADOW_CAST = 1 << 9 , OB_USE_GPENCIL_LIGHTS = 1 << 10
}
 
enum  {
  OB_ARROWS = 1 , OB_PLAINAXES = 2 , OB_CIRCLE = 3 , OB_SINGLE_ARROW = 4 ,
  OB_CUBE = 5 , OB_EMPTY_SPHERE = 6 , OB_EMPTY_CONE = 7 , OB_EMPTY_IMAGE = 8
}
 
enum  {
  GP_EMPTY = 0 , GP_STROKE = 1 , GP_MONKEY = 2 , GREASE_PENCIL_LINEART_SCENE = 3 ,
  GREASE_PENCIL_LINEART_OBJECT = 4 , GREASE_PENCIL_LINEART_COLLECTION = 5
}
 
enum  {
  OB_BOUND_BOX = 0 , OB_BOUND_SPHERE = 1 , OB_BOUND_CYLINDER = 2 , OB_BOUND_CONE = 3 ,
  OB_BOUND_CAPSULE = 7
}
 
enum  {
  BA_WAS_SEL = (1 << 1) , BA_SNAP_FIX_DEPS_FIASCO = (1 << 2) , BA_TEMP_TAG = 1 << 5 , BA_TRANSFORM_LOCKED_IN_PLACE = 1 << 7 ,
  BA_TRANSFORM_CHILD = 1 << 8 , BA_TRANSFORM_PARENT = 1 << 13 , OB_FROMDUPLI = 1 << 9 , OB_DONE = 1 << 10 ,
  OB_FLAG_USE_SIMULATION_CACHE = 1 << 11
}
 
enum  {
  OB_HIDE_VIEWPORT = 1 << 0 , OB_HIDE_SELECT = 1 << 1 , OB_HIDE_RENDER = 1 << 2 , OB_HIDE_CAMERA = 1 << 3 ,
  OB_HIDE_DIFFUSE = 1 << 4 , OB_HIDE_GLOSSY = 1 << 5 , OB_HIDE_TRANSMISSION = 1 << 6 , OB_HIDE_VOLUME_SCATTER = 1 << 7 ,
  OB_HIDE_SHADOW = 1 << 8 , OB_HOLDOUT = 1 << 9 , OB_SHADOW_CATCHER = 1 << 10 , OB_HIDE_PROBE_VOLUME = 1 << 11 ,
  OB_HIDE_PROBE_CUBEMAP = 1 << 12 , OB_HIDE_PROBE_PLANAR = 1 << 13
}
 
enum  { OB_SHAPE_LOCK = 1 << 0 , OB_SHAPE_EDIT_MODE = 1 << 2 }
 
enum  { OB_ADS_UNUSED_1 = 1 << 0 , OB_ADS_UNUSED_2 = 1 << 1 , OB_ADS_COLLAPSED = 1 << 10 }
 
enum  {
  OB_LOCK_LOCX = 1 << 0 , OB_LOCK_LOCY = 1 << 1 , OB_LOCK_LOCZ = 1 << 2 , OB_LOCK_LOC = OB_LOCK_LOCX | OB_LOCK_LOCY | OB_LOCK_LOCZ ,
  OB_LOCK_ROTX = 1 << 3 , OB_LOCK_ROTY = 1 << 4 , OB_LOCK_ROTZ = 1 << 5 , OB_LOCK_ROT = OB_LOCK_ROTX | OB_LOCK_ROTY | OB_LOCK_ROTZ ,
  OB_LOCK_SCALEX = 1 << 6 , OB_LOCK_SCALEY = 1 << 7 , OB_LOCK_SCALEZ = 1 << 8 , OB_LOCK_SCALE = OB_LOCK_SCALEX | OB_LOCK_SCALEY | OB_LOCK_SCALEZ ,
  OB_LOCK_ROTW = 1 << 9 , OB_LOCK_ROT4D = 1 << 10
}
 
enum  { OB_DUPLI_FLAG_VIEWPORT = 1 << 0 , OB_DUPLI_FLAG_RENDER = 1 << 1 }
 
enum  { OB_EMPTY_IMAGE_DEPTH_DEFAULT = 0 , OB_EMPTY_IMAGE_DEPTH_FRONT = 1 , OB_EMPTY_IMAGE_DEPTH_BACK = 2 }
 
enum  {
  OB_EMPTY_IMAGE_HIDE_PERSPECTIVE = 1 << 0 , OB_EMPTY_IMAGE_HIDE_ORTHOGRAPHIC = 1 << 1 , OB_EMPTY_IMAGE_HIDE_BACK = 1 << 2 , OB_EMPTY_IMAGE_HIDE_FRONT = 1 << 3 ,
  OB_EMPTY_IMAGE_HIDE_NON_AXIS_ALIGNED = 1 << 4
}
 
enum  { OB_EMPTY_IMAGE_USE_ALPHA_BLEND = 1 << 0 }
 
enum  ObjectModifierFlag { OB_MODIFIER_FLAG_ADD_REST_POSITION = 1 << 0 }
 

Functions

 ENUM_OPERATORS (eObjectLineArt_Usage, OBJECT_LRT_FORCE_INTERSECTION)
 

Detailed Description

Object is a sort of wrapper for general info.

Definition in file DNA_object_types.h.

Macro Definition Documentation

◆ MAX_DUPLI_RECUR

◆ MAX_VGROUP_NAME

◆ OB_DATA_SUPPORT_EDITMODE

◆ OB_DATA_SUPPORT_ID

◆ OB_DATA_SUPPORT_ID_CASE

#define OB_DATA_SUPPORT_ID_CASE
Value:
ID_ME: \
case ID_CU_LEGACY: \
case ID_MB: \
case ID_LA: \
case ID_SPK: \
case ID_LP: \
case ID_CA: \
case ID_LT: \
case ID_GD_LEGACY: \
case ID_AR: \
case ID_CV: \
case ID_PT: \
case ID_VO: \
case ID_GP

Definition at line 537 of file DNA_object_types.h.

Referenced by wm_context_member_from_ptr().

◆ OB_TYPE_IS_GEOMETRY

#define OB_TYPE_IS_GEOMETRY ( _type)
Value:
(ELEM(_type, \
@ OB_MBALL
@ OB_SURF
@ OB_FONT
@ OB_GREASE_PENCIL
@ OB_MESH
@ OB_POINTCLOUD
@ OB_VOLUME
@ OB_CURVES_LEGACY
@ OB_GPENCIL_LEGACY
@ OB_CURVES

Does the object have some render-able geometry (unlike empties, cameras, etc.). True for OB_CURVES_LEGACY, since these often evaluate to objects with geometry.

Definition at line 486 of file DNA_object_types.h.

Referenced by BKE_light_linking_add_receiver_to_collection(), BKE_light_linking_link_receiver_to_emitter(), blender::deg::DepsgraphRelationBuilder::build_driver_variables(), collection_preview_contains_geometry_recursive(), and object_preview_is_type_supported().

◆ OB_TYPE_SUPPORT_EDITMODE

◆ OB_TYPE_SUPPORT_MATERIAL

◆ OB_TYPE_SUPPORT_PARVERT

#define OB_TYPE_SUPPORT_PARVERT ( _type)     (ELEM(_type, OB_MESH, OB_SURF, OB_CURVES_LEGACY, OB_LATTICE))

Definition at line 512 of file DNA_object_types.h.

Referenced by ob_parvert3(), and blender::ed::object::parent_set_invoke_menu().

◆ OB_TYPE_SUPPORT_VGROUP

◆ SELECT

#define SELECT   1

This is used as a flag for many kinds of data that use selections, examples include:

Definition at line 442 of file DNA_object_types.h.

Typedef Documentation

◆ bDeformGroup

typedef struct bDeformGroup bDeformGroup

Vertex Groups - Name Info

◆ BoundBox

typedef struct BoundBox BoundBox

The following illustrates the orientation of the bounding box in local space


Z  Y
| /
|/
.-----X
    2----------6
   /|         /|
  / |        / |
 1----------5  |
 |  |       |  |
 |  3-------|--7
 | /        | /
 |/         |/
 0----------4

◆ LightLinking

typedef struct LightLinking LightLinking

◆ LightLinkingRuntime

typedef struct LightLinkingRuntime LightLinkingRuntime

◆ ObHook

typedef struct ObHook ObHook

DEPRECATED: this is not used anymore because hooks are now modifiers.

◆ Object

typedef struct Object Object

◆ ObjectLineArt

typedef struct ObjectLineArt ObjectLineArt

◆ ObjectModifierFlag

◆ ObjectRuntimeHandle

Definition at line 37 of file DNA_object_types.h.

◆ ObjectType

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

bDeformGroup::flag

Enumerator
DG_LOCK_WEIGHT 

Definition at line 78 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.partype: first 4 bits: type.

Enumerator
PARTYPE 
PAROBJECT 
PARSKEL 
PARVERT1 
PARVERT3 
PARBONE 

Definition at line 554 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.transflag (short)

Enumerator
OB_TRANSFORM_ADJUST_ROOT_PARENT_FOR_VIEW_LOCK 
OB_TRANSFLAG_UNUSED_1 
OB_NEG_SCALE 
OB_TRANSFLAG_UNUSED_3 
OB_DUPLIVERTS 
OB_DUPLIROT 
OB_TRANSFLAG_UNUSED_6 
OB_TRANSFLAG_UNUSED_7 
OB_DUPLICOLLECTION 
OB_DUPLIFACES 
OB_DUPLIFACES_SCALE 
OB_DUPLIPARTS 
OB_TRANSFLAG_UNUSED_12 
OB_NO_CONSTRAINTS 
OB_DUPLI 

Definition at line 565 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.trackflag / Object.upflag (short)

Enumerator
OB_POSX 
OB_POSY 
OB_POSZ 
OB_NEGX 
OB_NEGY 
OB_NEGZ 

Definition at line 587 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.dtx draw type extra flags (short)

Enumerator
OB_DRAWBOUNDOX 
OB_AXIS 
OB_TEXSPACE 
OB_DRAWNAME 
OB_DRAWWIRE 
OB_DRAW_IN_FRONT 
OB_DRAWTRANSP 
OB_DRAW_ALL_EDGES 
OB_DRAW_NO_SHADOW_CAST 
OB_USE_GPENCIL_LIGHTS 

Definition at line 597 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.empty_drawtype: no flags

Enumerator
OB_ARROWS 
OB_PLAINAXES 
OB_CIRCLE 
OB_SINGLE_ARROW 
OB_CUBE 
OB_EMPTY_SPHERE 
OB_EMPTY_CONE 
OB_EMPTY_IMAGE 

Definition at line 616 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Grease-pencil add types. TODO: doesn't need to be DNA, local to OBJECT_OT_gpencil_add.

Enumerator
GP_EMPTY 
GP_STROKE 
GP_MONKEY 
GREASE_PENCIL_LINEART_SCENE 
GREASE_PENCIL_LINEART_OBJECT 
GREASE_PENCIL_LINEART_COLLECTION 

Definition at line 631 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.boundtype

Enumerator
OB_BOUND_BOX 
OB_BOUND_SPHERE 
OB_BOUND_CYLINDER 
OB_BOUND_CONE 
OB_BOUND_CAPSULE 

Definition at line 641 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Base::flag_legacy (also used for Object::flag).

Enumerator
BA_WAS_SEL 
BA_SNAP_FIX_DEPS_FIASCO 

DEPRECATED, was runtime only, but was reusing an older flag.

BA_TEMP_TAG 

NOTE: this was used as a proper setting in past, so nullify before using

BA_TRANSFORM_LOCKED_IN_PLACE 

Even if this is tagged for transform, this flag means it's being locked in place. Use for SCE_XFORM_SKIP_CHILDREN.

BA_TRANSFORM_CHILD 

Child of a transformed object.

BA_TRANSFORM_PARENT 

Parent of a transformed object.

OB_FROMDUPLI 
OB_DONE 

Unknown state, clear before use.

OB_FLAG_USE_SIMULATION_CACHE 

Definition at line 655 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.visibility_flag

Enumerator
OB_HIDE_VIEWPORT 
OB_HIDE_SELECT 
OB_HIDE_RENDER 
OB_HIDE_CAMERA 
OB_HIDE_DIFFUSE 
OB_HIDE_GLOSSY 
OB_HIDE_TRANSMISSION 
OB_HIDE_VOLUME_SCATTER 
OB_HIDE_SHADOW 
OB_HOLDOUT 
OB_SHADOW_CATCHER 
OB_HIDE_PROBE_VOLUME 
OB_HIDE_PROBE_CUBEMAP 
OB_HIDE_PROBE_PLANAR 

Definition at line 686 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.shapeflag

Enumerator
OB_SHAPE_LOCK 
OB_SHAPE_EDIT_MODE 

Definition at line 704 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.nlaflag

Enumerator
OB_ADS_UNUSED_1 
OB_ADS_UNUSED_2 
OB_ADS_COLLAPSED 

Definition at line 713 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.protectflag

Enumerator
OB_LOCK_LOCX 
OB_LOCK_LOCY 
OB_LOCK_LOCZ 
OB_LOCK_LOC 
OB_LOCK_ROTX 
OB_LOCK_ROTY 
OB_LOCK_ROTZ 
OB_LOCK_ROT 
OB_LOCK_SCALEX 
OB_LOCK_SCALEY 
OB_LOCK_SCALEZ 
OB_LOCK_SCALE 
OB_LOCK_ROTW 
OB_LOCK_ROT4D 

Definition at line 729 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.duplicator_visibility_flag

Enumerator
OB_DUPLI_FLAG_VIEWPORT 
OB_DUPLI_FLAG_RENDER 

Definition at line 747 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.empty_image_depth

Enumerator
OB_EMPTY_IMAGE_DEPTH_DEFAULT 
OB_EMPTY_IMAGE_DEPTH_FRONT 
OB_EMPTY_IMAGE_DEPTH_BACK 

Definition at line 753 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.empty_image_visibility_flag

Enumerator
OB_EMPTY_IMAGE_HIDE_PERSPECTIVE 
OB_EMPTY_IMAGE_HIDE_ORTHOGRAPHIC 
OB_EMPTY_IMAGE_HIDE_BACK 
OB_EMPTY_IMAGE_HIDE_FRONT 
OB_EMPTY_IMAGE_HIDE_NON_AXIS_ALIGNED 

Definition at line 760 of file DNA_object_types.h.

◆ anonymous enum

anonymous enum

Object.empty_image_flag

Enumerator
OB_EMPTY_IMAGE_USE_ALPHA_BLEND 

Definition at line 769 of file DNA_object_types.h.

◆ eObjectLineArt_Flags

Enumerator
OBJECT_LRT_OWN_CREASE 
OBJECT_LRT_OWN_INTERSECTION_PRIORITY 

Definition at line 133 of file DNA_object_types.h.

◆ eObjectLineArt_Usage

Warning
while the values seem to be flags, they aren't treated as flags.
Enumerator
OBJECT_LRT_INHERIT 
OBJECT_LRT_INCLUDE 
OBJECT_LRT_OCCLUSION_ONLY 
OBJECT_LRT_EXCLUDE 
OBJECT_LRT_INTERSECTION_ONLY 
OBJECT_LRT_NO_INTERSECTION 
OBJECT_LRT_FORCE_INTERSECTION 

Definition at line 122 of file DNA_object_types.h.

◆ ObjectModifierFlag

Enumerator
OB_MODIFIER_FLAG_ADD_REST_POSITION 

Definition at line 773 of file DNA_object_types.h.

◆ ObjectType

enum ObjectType

Object.type

Enumerator
OB_EMPTY 
OB_MESH 
OB_CURVES_LEGACY 

Curve object is still used but replaced by "Curves" for the future (see #95355).

OB_SURF 
OB_FONT 
OB_MBALL 
OB_LAMP 
OB_CAMERA 
OB_SPEAKER 
OB_LIGHTPROBE 
OB_LATTICE 
OB_ARMATURE 
OB_GPENCIL_LEGACY 
OB_CURVES 
OB_POINTCLOUD 
OB_VOLUME 
OB_GREASE_PENCIL 
OB_TYPE_MAX 

Definition at line 445 of file DNA_object_types.h.

Function Documentation

◆ ENUM_OPERATORS()