Blender V4.3
rna_object.cc File Reference
#include <cstdio>
#include <cstdlib>
#include "DNA_action_types.h"
#include "DNA_brush_types.h"
#include "DNA_collection_types.h"
#include "DNA_customdata_types.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_lightprobe_types.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
#include "DNA_object_force_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_shader_fx_types.h"
#include "DNA_workspace_types.h"
#include "BLI_math_matrix.h"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "BKE_camera.h"
#include "BKE_collection.hh"
#include "BKE_editlattice.h"
#include "BKE_editmesh.hh"
#include "BKE_layer.hh"
#include "BKE_object_deform.h"
#include "BKE_paint.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "RNA_enum_types.hh"
#include "rna_internal.hh"
#include "BLI_sys_types.h"
#include "ED_mesh.hh"
#include "ED_object_vgroup.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "DEG_depsgraph_query.hh"

Go to the source code of this file.

Macros

#define INSTANCE_ITEMS_SHARED
 
#define INSTANCE_ITEM_COLLECTION
 
#define OBTYPE_CU_CURVE
 
#define OBTYPE_CU_SURF
 
#define OBTYPE_CU_FONT
 

Functions

static void rna_def_vertex_group (BlenderRNA *brna)
 
static void rna_def_material_slot (BlenderRNA *brna)
 
static void rna_def_object_constraints (BlenderRNA *brna, PropertyRNA *cprop)
 
static void rna_def_object_modifiers (BlenderRNA *brna, PropertyRNA *cprop)
 
static void rna_def_object_shaderfxs (BlenderRNA *brna, PropertyRNA *cprop)
 
static void rna_def_object_particle_systems (BlenderRNA *brna, PropertyRNA *cprop)
 
static void rna_def_object_vertex_groups (BlenderRNA *brna, PropertyRNA *cprop)
 
static void rna_def_object_display (BlenderRNA *brna)
 
static void rna_def_object_lineart (BlenderRNA *brna)
 
static void rna_def_object_visibility (StructRNA *srna)
 
static void rna_def_object (BlenderRNA *brna)
 
static void rna_def_object_light_linking (BlenderRNA *brna)
 
void RNA_def_object (BlenderRNA *brna)
 

Variables

const EnumPropertyItem rna_enum_object_mode_items []
 
const EnumPropertyItem rna_enum_workspace_object_mode_items []
 
const EnumPropertyItem rna_enum_object_empty_drawtype_items []
 
static const EnumPropertyItem rna_enum_object_empty_image_depth_items []
 
const EnumPropertyItem rna_enum_object_gpencil_type_items []
 
static const EnumPropertyItem parent_type_items []
 
static const EnumPropertyItem instance_items []
 
const EnumPropertyItem rna_enum_metaelem_type_items []
 
const EnumPropertyItem rna_enum_lightprobes_type_items []
 
const EnumPropertyItem rna_enum_object_type_items []
 
const EnumPropertyItem rna_enum_object_type_curve_items []
 
const EnumPropertyItem rna_enum_object_rotation_mode_items []
 
const EnumPropertyItem rna_enum_object_axis_items []
 

Macro Definition Documentation

◆ INSTANCE_ITEM_COLLECTION

#define INSTANCE_ITEM_COLLECTION
Value:
{ \
OB_DUPLICOLLECTION, "COLLECTION", 0, "Collection", "Enable collection instancing" \
}
@ OB_DUPLICOLLECTION

Definition at line 191 of file rna_object.cc.

◆ INSTANCE_ITEMS_SHARED

#define INSTANCE_ITEMS_SHARED
Value:
{0, "NONE", 0, "None", ""}, \
{OB_DUPLIVERTS, "VERTS", 0, "Vertices", "Instantiate child objects on all vertices"}, \
{ \
OB_DUPLIFACES, "FACES", 0, "Faces", "Instantiate child objects on all faces" \
}
@ OB_DUPLIFACES
@ OB_DUPLIVERTS

Definition at line 184 of file rna_object.cc.

◆ OBTYPE_CU_CURVE

#define OBTYPE_CU_CURVE
Value:
{ \
OB_CURVES_LEGACY, "CURVE", ICON_OUTLINER_OB_CURVE, "Curve", "" \
}
@ OB_CURVES_LEGACY

Definition at line 239 of file rna_object.cc.

◆ OBTYPE_CU_FONT

#define OBTYPE_CU_FONT
Value:
{ \
OB_FONT, "FONT", ICON_OUTLINER_OB_FONT, "Text", "" \
}
@ OB_FONT

Definition at line 247 of file rna_object.cc.

◆ OBTYPE_CU_SURF

#define OBTYPE_CU_SURF
Value:
{ \
OB_SURF, "SURFACE", ICON_OUTLINER_OB_SURFACE, "Surface", "" \
}
@ OB_SURF

Definition at line 243 of file rna_object.cc.

Function Documentation

◆ rna_def_material_slot()

◆ RNA_def_object()

◆ rna_def_object()

static void rna_def_object ( BlenderRNA * brna)
static

Definition at line 2887 of file rna_object.cc.

References BASE_FROM_DUPLI, BASE_FROM_SET, BLT_I18NCONTEXT_ID_ID, BLT_I18NCONTEXT_ID_IMAGE, FLT_MAX, instance_items, NC_MATERIAL, NC_OBJECT, ND_DRAW, ND_SHADING_LINKS, ND_TRANSFORM, OB_AXIS, OB_BOUND_BOX, OB_BOUND_CAPSULE, OB_BOUND_CONE, OB_BOUND_CYLINDER, OB_BOUND_SPHERE, OB_BOUNDBOX, OB_DRAW_ALL_EDGES, OB_DRAW_IN_FRONT, OB_DRAWBOUNDOX, OB_DRAWNAME, OB_DRAWTRANSP, OB_DRAWWIRE, OB_DUPLI, OB_DUPLIFACES_SCALE, OB_DUPLIROT, OB_EMPTY_IMAGE_HIDE_BACK, OB_EMPTY_IMAGE_HIDE_FRONT, OB_EMPTY_IMAGE_HIDE_NON_AXIS_ALIGNED, OB_EMPTY_IMAGE_HIDE_ORTHOGRAPHIC, OB_EMPTY_IMAGE_HIDE_PERSPECTIVE, OB_EMPTY_IMAGE_USE_ALPHA_BLEND, OB_FLAG_USE_SIMULATION_CACHE, OB_LOCK_LOCX, OB_LOCK_ROT4D, OB_LOCK_ROTW, OB_LOCK_ROTX, OB_LOCK_SCALEX, OB_MODIFIER_FLAG_ADD_REST_POSITION, OB_POSX, OB_POSY, OB_POSZ, OB_SHAPE_EDIT_MODE, OB_SHAPE_LOCK, OB_SOLID, OB_TEXSPACE, OB_TEXTURE, OB_TRANSFORM_ADJUST_ROOT_PARENT_FOR_VIEW_LOCK, OB_USE_GPENCIL_LIGHTS, OB_WIRE, parent_type_items, PROP_ANIMATABLE, PROP_AXISANGLE, PROP_BOOLEAN, PROP_COLLECTION, PROP_COLOR, PROP_DISTANCE, PROP_EDITABLE, PROP_ENUM, PROP_EULER, PROP_FLOAT, PROP_ID_SELF_CHECK, PROP_INT, PROP_MATRIX, PROP_NEVER_NULL, PROP_NEVER_UNLINK, PROP_NO_DEG_UPDATE, PROP_NONE, PROP_POINTER, PROP_PROPORTIONAL, PROP_QUATERNION, PROP_STRING, PROP_TRANSLATION, PROP_UNSIGNED, PROP_XYZ, PROP_XYZ_LENGTH, PROPOVERRIDE_IGNORE, PROPOVERRIDE_LIBRARY_INSERTION, PROPOVERRIDE_NO_COMPARISON, PROPOVERRIDE_NO_PROP_NAME, PROPOVERRIDE_OVERRIDABLE_LIBRARY, RNA_api_object(), rna_def_animdata_common(), rna_def_animviz_common(), rna_def_motionpath_common(), rna_def_object_constraints(), rna_def_object_modifiers(), rna_def_object_particle_systems(), rna_def_object_shaderfxs(), rna_def_object_vertex_groups(), rna_def_object_visibility(), RNA_def_property(), RNA_def_property_array(), RNA_def_property_boolean_default(), RNA_def_property_boolean_funcs(), RNA_def_property_boolean_negative_sdna(), RNA_def_property_boolean_sdna(), RNA_def_property_clear_flag(), RNA_def_property_collection_funcs(), RNA_def_property_collection_sdna(), RNA_def_property_editable_array_func(), RNA_def_property_editable_func(), RNA_def_property_enum_bitflag_sdna(), RNA_def_property_enum_funcs(), RNA_def_property_enum_items(), RNA_def_property_enum_sdna(), RNA_def_property_flag(), RNA_def_property_float_array_default(), RNA_def_property_float_funcs(), RNA_def_property_float_sdna(), RNA_def_property_int_funcs(), RNA_def_property_int_sdna(), RNA_def_property_multi_array(), RNA_def_property_override_clear_flag(), RNA_def_property_override_flag(), RNA_def_property_override_funcs(), RNA_def_property_pointer_funcs(), RNA_def_property_pointer_sdna(), RNA_def_property_range(), RNA_def_property_string_funcs(), RNA_def_property_string_sdna(), RNA_def_property_struct_type(), RNA_def_property_translation_context(), RNA_def_property_ui_icon(), RNA_def_property_ui_range(), RNA_def_property_ui_text(), RNA_def_property_update(), RNA_def_struct(), RNA_def_struct_clear_flag(), RNA_def_struct_ui_icon(), RNA_def_struct_ui_text(), rna_default_axis_angle, RNA_define_lib_overridable(), rna_enum_object_axis_items, rna_enum_object_empty_drawtype_items, rna_enum_object_empty_image_depth_items, rna_enum_object_mode_items, rna_enum_object_rotation_mode_items, rna_enum_object_type_items, rna_matrix_dimsize_4x4, RNA_TRANSLATION_PREC_DEFAULT, and STRUCT_ID_REFCOUNT.

Referenced by RNA_def_object().

◆ rna_def_object_constraints()

◆ rna_def_object_display()

◆ rna_def_object_light_linking()

◆ rna_def_object_lineart()

◆ rna_def_object_modifiers()

◆ rna_def_object_particle_systems()

◆ rna_def_object_shaderfxs()

◆ rna_def_object_vertex_groups()

◆ rna_def_object_visibility()

◆ rna_def_vertex_group()

Variable Documentation

◆ instance_items

const EnumPropertyItem instance_items[]
static
Initial value:
= {
{0, nullptr, 0, nullptr, nullptr},
}
#define INSTANCE_ITEM_COLLECTION
#define INSTANCE_ITEMS_SHARED

Definition at line 195 of file rna_object.cc.

Referenced by rna_def_object().

◆ parent_type_items

const EnumPropertyItem parent_type_items[]
static
Initial value:
= {
{PAROBJECT, "OBJECT", 0, "Object", "The object is parented to an object"},
{PARSKEL, "ARMATURE", 0, "Armature", ""},
{PARSKEL, "LATTICE", 0, "Lattice", "The object is parented to a lattice"},
{PARVERT1, "VERTEX", 0, "Vertex", "The object is parented to a vertex"},
{PARVERT3, "VERTEX_3", 0, "3 Vertices", ""},
{PARBONE, "BONE", 0, "Bone", "The object is parented to a bone"},
{0, nullptr, 0, nullptr, nullptr},
}
@ PARVERT1
@ PARSKEL
@ PAROBJECT
@ PARVERT3
@ PARBONE

Definition at line 173 of file rna_object.cc.

Referenced by rna_def_maskParent(), and rna_def_object().

◆ rna_enum_lightprobes_type_items

const EnumPropertyItem rna_enum_lightprobes_type_items[]
Initial value:
= {
{LIGHTPROBE_TYPE_SPHERE, "SPHERE", ICON_LIGHTPROBE_SPHERE, "Sphere", ""},
{LIGHTPROBE_TYPE_PLANE, "PLANE", ICON_LIGHTPROBE_PLANE, "Plane", ""},
{LIGHTPROBE_TYPE_VOLUME, "VOLUME", ICON_LIGHTPROBE_VOLUME, "Volume", ""},
{0, nullptr, 0, nullptr, nullptr},
}
@ LIGHTPROBE_TYPE_PLANE
@ LIGHTPROBE_TYPE_VOLUME
@ LIGHTPROBE_TYPE_SPHERE

Definition at line 231 of file rna_object.cc.

Referenced by RNA_def_main_lightprobes().

◆ rna_enum_metaelem_type_items

const EnumPropertyItem rna_enum_metaelem_type_items[]
Initial value:
= {
{MB_BALL, "BALL", ICON_META_BALL, "Ball", ""},
{MB_TUBE, "CAPSULE", ICON_META_CAPSULE, "Capsule", ""},
{MB_PLANE, "PLANE", ICON_META_PLANE, "Plane", ""},
{MB_ELIPSOID, "ELLIPSOID", ICON_META_ELLIPSOID, "Ellipsoid", ""},
{MB_CUBE, "CUBE", ICON_META_CUBE, "Cube", ""},
{0, nullptr, 0, nullptr, nullptr},
}
@ MB_PLANE
@ MB_ELIPSOID
@ MB_TUBE
@ MB_CUBE
@ MB_BALL

Definition at line 221 of file rna_object.cc.

Referenced by blender::ed::object::OBJECT_OT_metaball_add(), rna_def_metaball_elements(), and rna_def_metaelement().

◆ rna_enum_object_axis_items

const EnumPropertyItem rna_enum_object_axis_items[]
Initial value:
= {
{OB_POSX, "POS_X", 0, "+X", ""},
{OB_POSY, "POS_Y", 0, "+Y", ""},
{OB_POSZ, "POS_Z", 0, "+Z", ""},
{OB_NEGX, "NEG_X", 0, "-X", ""},
{OB_NEGY, "NEG_Y", 0, "-Y", ""},
{OB_NEGZ, "NEG_Z", 0, "-Z", ""},
{0, nullptr, 0, nullptr, nullptr},
}
@ OB_POSX
@ OB_NEGZ
@ OB_POSY
@ OB_NEGX
@ OB_POSZ
@ OB_NEGY

Definition at line 301 of file rna_object.cc.

Referenced by RNA_api_gizmo(), rna_def_cachefile(), rna_def_constraint_shrinkwrap(), rna_def_modifier_meshcache(), rna_def_object(), and rna_def_statvis().

◆ rna_enum_object_empty_drawtype_items

const EnumPropertyItem rna_enum_object_empty_drawtype_items[]
Initial value:
= {
{OB_PLAINAXES, "PLAIN_AXES", ICON_EMPTY_AXIS, "Plain Axes", ""},
{OB_ARROWS, "ARROWS", ICON_EMPTY_ARROWS, "Arrows", ""},
{OB_SINGLE_ARROW, "SINGLE_ARROW", ICON_EMPTY_SINGLE_ARROW, "Single Arrow", ""},
{OB_CIRCLE, "CIRCLE", ICON_MESH_CIRCLE, "Circle", ""},
{OB_CUBE, "CUBE", ICON_CUBE, "Cube", ""},
{OB_EMPTY_SPHERE, "SPHERE", ICON_SPHERE, "Sphere", ""},
{OB_EMPTY_CONE, "CONE", ICON_CONE, "Cone", ""},
{OB_EMPTY_IMAGE, "IMAGE", ICON_FILE_IMAGE, "Image", ""},
{0, nullptr, 0, nullptr, nullptr},
}
@ OB_EMPTY_CONE
@ OB_SINGLE_ARROW
@ OB_PLAINAXES
@ OB_ARROWS
@ OB_CIRCLE
@ OB_CUBE
@ OB_EMPTY_IMAGE
@ OB_EMPTY_SPHERE

Definition at line 132 of file rna_object.cc.

Referenced by blender::ed::object::OBJECT_OT_empty_add(), and rna_def_object().

◆ rna_enum_object_empty_image_depth_items

const EnumPropertyItem rna_enum_object_empty_image_depth_items[]
static
Initial value:
= {
{OB_EMPTY_IMAGE_DEPTH_DEFAULT, "DEFAULT", 0, "Default", ""},
{OB_EMPTY_IMAGE_DEPTH_FRONT, "FRONT", 0, "Front", ""},
{OB_EMPTY_IMAGE_DEPTH_BACK, "BACK", 0, "Back", ""},
{0, nullptr, 0, nullptr, nullptr},
}
@ OB_EMPTY_IMAGE_DEPTH_DEFAULT
@ OB_EMPTY_IMAGE_DEPTH_FRONT
@ OB_EMPTY_IMAGE_DEPTH_BACK

Definition at line 144 of file rna_object.cc.

Referenced by rna_def_object().

◆ rna_enum_object_gpencil_type_items

const EnumPropertyItem rna_enum_object_gpencil_type_items[]
Initial value:
= {
{GP_EMPTY, "EMPTY", ICON_EMPTY_AXIS, "Blank", "Create an empty grease pencil object"},
{GP_STROKE, "STROKE", ICON_STROKE, "Stroke", "Create a simple stroke with basic colors"},
{GP_MONKEY, "MONKEY", ICON_MONKEY, "Monkey", "Construct a Suzanne grease pencil object"},
"LINEART_SCENE",
ICON_SCENE_DATA,
"Scene Line Art",
"Quickly set up Line Art for the entire scene"},
"LINEART_COLLECTION",
ICON_OUTLINER_COLLECTION,
"Collection Line Art",
"Quickly set up Line Art for the active collection"},
"LINEART_OBJECT",
ICON_OBJECT_DATA,
"Object Line Art",
"Quickly set up Line Art for the active object"},
{0, nullptr, 0, nullptr, nullptr}}
@ GREASE_PENCIL_LINEART_SCENE
@ GP_STROKE
@ GREASE_PENCIL_LINEART_COLLECTION
@ GREASE_PENCIL_LINEART_OBJECT
@ GP_MONKEY
@ GP_EMPTY
#define RNA_ENUM_ITEM_SEPR
Definition RNA_types.hh:528

Definition at line 151 of file rna_object.cc.

Referenced by blender::ed::object::OBJECT_OT_grease_pencil_add().

◆ rna_enum_object_mode_items

◆ rna_enum_object_rotation_mode_items

const EnumPropertyItem rna_enum_object_rotation_mode_items[]
Initial value:
= {
{ROT_MODE_QUAT, "QUATERNION", 0, "Quaternion (WXYZ)", "No Gimbal Lock"},
{ROT_MODE_XYZ, "XYZ", 0, "XYZ Euler", "XYZ Rotation Order - prone to Gimbal Lock (default)"},
{ROT_MODE_XZY, "XZY", 0, "XZY Euler", "XZY Rotation Order - prone to Gimbal Lock"},
{ROT_MODE_YXZ, "YXZ", 0, "YXZ Euler", "YXZ Rotation Order - prone to Gimbal Lock"},
{ROT_MODE_YZX, "YZX", 0, "YZX Euler", "YZX Rotation Order - prone to Gimbal Lock"},
{ROT_MODE_ZXY, "ZXY", 0, "ZXY Euler", "ZXY Rotation Order - prone to Gimbal Lock"},
{ROT_MODE_ZYX, "ZYX", 0, "ZYX Euler", "ZYX Rotation Order - prone to Gimbal Lock"},
"AXIS_ANGLE",
0,
"Axis Angle",
"Axis Angle (W+XYZ), defines a rotation around some axis defined by 3D-Vector"},
{0, nullptr, 0, nullptr, nullptr},
}
@ ROT_MODE_XZY
@ ROT_MODE_QUAT
@ ROT_MODE_ZXY
@ ROT_MODE_AXISANGLE
@ ROT_MODE_ZYX
@ ROT_MODE_XYZ
@ ROT_MODE_YXZ
@ ROT_MODE_YZX

Definition at line 285 of file rna_object.cc.

Referenced by POSE_OT_rotation_mode_set(), rna_def_object(), rna_def_pose_channel(), and rna_def_view3d_cursor().

◆ rna_enum_object_type_curve_items

const EnumPropertyItem rna_enum_object_type_curve_items[]
Initial value:
= {
{0, nullptr, 0, nullptr, nullptr},
}
#define OBTYPE_CU_CURVE
#define OBTYPE_CU_FONT
#define OBTYPE_CU_SURF

Definition at line 278 of file rna_object.cc.

Referenced by RNA_def_main_curves().

◆ rna_enum_object_type_items

const EnumPropertyItem rna_enum_object_type_items[]
Initial value:
= {
{OB_MESH, "MESH", ICON_OUTLINER_OB_MESH, "Mesh", ""},
{OB_MBALL, "META", ICON_OUTLINER_OB_META, "Metaball", ""},
{OB_CURVES, "CURVES", ICON_OUTLINER_OB_CURVES, "Hair Curves", ""},
{OB_POINTCLOUD, "POINTCLOUD", ICON_OUTLINER_OB_POINTCLOUD, "Point Cloud", ""},
{OB_VOLUME, "VOLUME", ICON_OUTLINER_OB_VOLUME, "Volume", ""},
{OB_GPENCIL_LEGACY, "GPENCIL", ICON_OUTLINER_OB_GREASEPENCIL, "Grease Pencil", ""},
{OB_GREASE_PENCIL, "GREASEPENCIL", ICON_OUTLINER_OB_GREASEPENCIL, "Grease Pencil v3", ""},
{OB_ARMATURE, "ARMATURE", ICON_OUTLINER_OB_ARMATURE, "Armature", ""},
{OB_LATTICE, "LATTICE", ICON_OUTLINER_OB_LATTICE, "Lattice", ""},
{OB_EMPTY, "EMPTY", ICON_OUTLINER_OB_EMPTY, "Empty", ""},
{OB_LAMP, "LIGHT", ICON_OUTLINER_OB_LIGHT, "Light", ""},
{OB_LIGHTPROBE, "LIGHT_PROBE", ICON_OUTLINER_OB_LIGHTPROBE, "Light Probe", ""},
{OB_CAMERA, "CAMERA", ICON_OUTLINER_OB_CAMERA, "Camera", ""},
{OB_SPEAKER, "SPEAKER", ICON_OUTLINER_OB_SPEAKER, "Speaker", ""},
{0, nullptr, 0, nullptr, nullptr},
}
@ OB_SPEAKER
@ OB_LATTICE
@ OB_MBALL
@ OB_EMPTY
@ OB_CAMERA
@ OB_GREASE_PENCIL
@ OB_ARMATURE
@ OB_LAMP
@ OB_MESH
@ OB_POINTCLOUD
@ OB_VOLUME
@ OB_GPENCIL_LEGACY
@ OB_CURVES
@ OB_LIGHTPROBE

Definition at line 252 of file rna_object.cc.

Referenced by blender::ed::object::OBJECT_OT_add(), blender::ed::object::OBJECT_OT_select_by_type(), and rna_def_object().

◆ rna_enum_workspace_object_mode_items

const EnumPropertyItem rna_enum_workspace_object_mode_items[]

Definition at line 95 of file rna_object.cc.

Referenced by rna_def_workspace().