Blender  V3.3
object_constraint.c File Reference
#include <stdio.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
#include "DNA_curve_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_text_types.h"
#include "BIK_api.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_constraint.h"
#include "BKE_context.h"
#include "BKE_fcurve.h"
#include "BKE_main.h"
#include "BKE_object.h"
#include "BKE_report.h"
#include "BKE_tracking.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
#include "DEG_depsgraph_query.h"
#include "WM_api.h"
#include "WM_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
#include "RNA_path.h"
#include "RNA_prototypes.h"
#include "ED_keyframing.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "object_intern.h"

Go to the source code of this file.

Functions

Constraint Data Accessors
ListBaseED_object_constraint_active_list (Object *ob)
 
ListBaseED_object_pose_constraint_list (const bContext *C)
 
ListBaseED_object_constraint_list_from_constraint (Object *ob, bConstraint *con, bPoseChannel **r_pchan)
 
bConstraintED_object_constraint_active_get (Object *ob)
 
Add Constraint Utilities
static void set_constraint_nth_target (bConstraint *con, Object *target, const char subtarget[], int index)
 
Constraint Sanity Testing
static void test_constraint (Main *bmain, Object *owner, bPoseChannel *pchan, bConstraint *con, int type)
 
static int constraint_type_get (Object *owner, bPoseChannel *pchan)
 
static void test_constraints (Main *bmain, Object *ob, bPoseChannel *pchan)
 
void object_test_constraints (Main *bmain, Object *ob)
 
static void object_test_constraint (Main *bmain, Object *ob, bConstraint *con)
 
Stretch-To/Limit-Distance Constraint (Reset Original Length Operator)

For Stretch-To & Limit-Distance constraints.

static int stretchto_reset_exec (bContext *C, wmOperator *op)
 
static int stretchto_reset_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
void CONSTRAINT_OT_stretchto_reset (wmOperatorType *ot)
 
Distance Constraint (Reset Operator)

For Limit-Distance constraint.

static int limitdistance_reset_exec (bContext *C, wmOperator *op)
 
static int limitdistance_reset_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
void CONSTRAINT_OT_limitdistance_reset (wmOperatorType *ot)
 
Child-Of Constraint (Set Inverse Operator)
static void force_evaluation_if_constraint_disabled (bContext *C, Object *ob, bConstraint *con)
 
static int childof_set_inverse_exec (bContext *C, wmOperator *op)
 
static int childof_set_inverse_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
void CONSTRAINT_OT_childof_set_inverse (wmOperatorType *ot)
 
static int childof_clear_inverse_exec (bContext *C, wmOperator *op)
 
static int childof_clear_inverse_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
void CONSTRAINT_OT_childof_clear_inverse (wmOperatorType *ot)
 
Follow Path Constraint (Auto Animate Path Operator)
static int followpath_path_animate_exec (bContext *C, wmOperator *op)
 
static int followpath_path_animate_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
void CONSTRAINT_OT_followpath_path_animate (wmOperatorType *ot)
 
Object Solver Constraint (Set Inverse Operator)
static int objectsolver_set_inverse_exec (bContext *C, wmOperator *op)
 
static int objectsolver_set_inverse_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
void CONSTRAINT_OT_objectsolver_set_inverse (wmOperatorType *ot)
 
Object Solver Constraint (Clear Inverse Operator)
static int objectsolver_clear_inverse_exec (bContext *C, wmOperator *op)
 
static int objectsolver_clear_inverse_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
void CONSTRAINT_OT_objectsolver_clear_inverse (wmOperatorType *ot)
 
Constraint Management Utilities
void ED_object_constraint_active_set (Object *ob, bConstraint *con)
 
void ED_object_constraint_update (Main *bmain, Object *ob)
 
static void object_pose_tag_update (Main *bmain, Object *ob)
 
void ED_object_constraint_dependency_update (Main *bmain, Object *ob)
 
void ED_object_constraint_tag_update (Main *bmain, Object *ob, bConstraint *con)
 
void ED_object_constraint_dependency_tag_update (Main *bmain, Object *ob, bConstraint *con)
 
bool ED_object_constraint_move_to_index (Object *ob, bConstraint *con, const int index)
 
void ED_object_constraint_link (Main *bmain, Object *ob_dst, ListBase *dst, ListBase *src)
 
void ED_object_constraint_copy_for_object (Main *bmain, Object *ob_dst, bConstraint *con)
 
void ED_object_constraint_copy_for_pose (Main *bmain, Object *ob_dst, bPoseChannel *pchan, bConstraint *con)
 
Delete Constraint Operator
static int constraint_delete_exec (bContext *C, wmOperator *op)
 
static int constraint_delete_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void CONSTRAINT_OT_delete (wmOperatorType *ot)
 
Apply Constraint Operator
static int constraint_apply_exec (bContext *C, wmOperator *op)
 
static int constraint_apply_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void CONSTRAINT_OT_apply (wmOperatorType *ot)
 
Copy Constraint Operator
static int constraint_copy_exec (bContext *C, wmOperator *op)
 
static int constraint_copy_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void CONSTRAINT_OT_copy (wmOperatorType *ot)
 
Copy Constraint To Selected Operator
static int constraint_copy_to_selected_exec (bContext *C, wmOperator *op)
 
static int constraint_copy_to_selected_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static bool constraint_copy_to_selected_poll (bContext *C)
 
void CONSTRAINT_OT_copy_to_selected (wmOperatorType *ot)
 
Move Down Constraint Operator
static int constraint_move_down_exec (bContext *C, wmOperator *op)
 
static int constraint_move_down_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void CONSTRAINT_OT_move_down (wmOperatorType *ot)
 
Move Up Constraint Operator
static int constraint_move_up_exec (bContext *C, wmOperator *op)
 
static int constraint_move_up_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void CONSTRAINT_OT_move_up (wmOperatorType *ot)
 
Move Constraint To Index Operator
static int constraint_move_to_index_exec (bContext *C, wmOperator *op)
 
static int constraint_move_to_index_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void CONSTRAINT_OT_move_to_index (wmOperatorType *ot)
 
Clear Pose Constraints Operator
static int pose_constraints_clear_exec (bContext *C, wmOperator *UNUSED(op))
 
void POSE_OT_constraints_clear (wmOperatorType *ot)
 
static int object_constraints_clear_exec (bContext *C, wmOperator *UNUSED(op))
 
Clear Object Constraints Operator
void OBJECT_OT_constraints_clear (wmOperatorType *ot)
 
Copy Pose Constraints Operator
static int pose_constraint_copy_exec (bContext *C, wmOperator *op)
 
void POSE_OT_constraints_copy (wmOperatorType *ot)
 
Copy Object Constraints Operator
static int object_constraint_copy_exec (bContext *C, wmOperator *UNUSED(op))
 
void OBJECT_OT_constraints_copy (wmOperatorType *ot)
 
Add Constraints Operator
static bool get_new_constraint_target (bContext *C, int con_type, Object **tar_ob, bPoseChannel **tar_pchan, bool add)
 
static int constraint_add_exec (bContext *C, wmOperator *op, Object *ob, ListBase *list, int type, const bool setTarget)
 
static int object_constraint_add_exec (bContext *C, wmOperator *op)
 
static int pose_constraint_add_exec (bContext *C, wmOperator *op)
 
static const EnumPropertyItemobject_constraint_add_itemf (bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free)
 
void OBJECT_OT_constraint_add (wmOperatorType *ot)
 
Add Constraints With Targets Operator
void OBJECT_OT_constraint_add_with_targets (wmOperatorType *ot)
 
void POSE_OT_constraint_add (wmOperatorType *ot)
 
void POSE_OT_constraint_add_with_targets (wmOperatorType *ot)
 
Add IK to Bone Operator
Note
Only for pose-channels.
static int pose_ik_add_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
static int pose_ik_add_exec (bContext *C, wmOperator *op)
 
void POSE_OT_ik_add (wmOperatorType *ot)
 
Clear IK from Bone Operator

Remove IK constraints from selected bones.

static int pose_ik_clear_exec (bContext *C, wmOperator *UNUSED(op))
 
void POSE_OT_ik_clear (wmOperatorType *ot)
 

Generic Functions for Operators Using Constraint Names and Data Context

#define EDIT_CONSTRAINT_OWNER_OBJECT   0
 
#define EDIT_CONSTRAINT_OWNER_BONE   1
 
static const EnumPropertyItem constraint_owner_items []
 
static bool edit_constraint_poll_generic (bContext *C, StructRNA *rna_type, const bool is_liboverride_allowed)
 
static bool edit_constraint_poll (bContext *C)
 
static bool edit_constraint_liboverride_allowed_poll (bContext *C)
 
static void edit_constraint_properties (wmOperatorType *ot)
 
static void edit_constraint_report_property (wmOperatorType *ot)
 
static bool edit_constraint_invoke_properties (bContext *C, wmOperator *op, const wmEvent *event, int *r_retval)
 
static bConstraintedit_constraint_property_get (bContext *C, wmOperator *op, Object *ob, int type)
 

Macro Definition Documentation

◆ EDIT_CONSTRAINT_OWNER_BONE

#define EDIT_CONSTRAINT_OWNER_BONE   1

Definition at line 643 of file object_constraint.c.

◆ EDIT_CONSTRAINT_OWNER_OBJECT

#define EDIT_CONSTRAINT_OWNER_OBJECT   0

Definition at line 642 of file object_constraint.c.

Function Documentation

◆ childof_clear_inverse_exec()

static int childof_clear_inverse_exec ( bContext C,
wmOperator op 
)
static

◆ childof_clear_inverse_invoke()

static int childof_clear_inverse_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ childof_set_inverse_exec()

static int childof_set_inverse_exec ( bContext C,
wmOperator op 
)
static

◆ childof_set_inverse_invoke()

static int childof_set_inverse_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ constraint_add_exec()

static int constraint_add_exec ( bContext C,
wmOperator op,
Object ob,
ListBase list,
int  type,
const bool  setTarget 
)
static

◆ constraint_apply_exec()

static int constraint_apply_exec ( bContext C,
wmOperator op 
)
static

◆ constraint_apply_invoke()

static int constraint_apply_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ constraint_copy_exec()

static int constraint_copy_exec ( bContext C,
wmOperator op 
)
static

◆ constraint_copy_invoke()

static int constraint_copy_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ constraint_copy_to_selected_exec()

static int constraint_copy_to_selected_exec ( bContext C,
wmOperator op 
)
static

◆ constraint_copy_to_selected_invoke()

static int constraint_copy_to_selected_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ constraint_copy_to_selected_poll()

static bool constraint_copy_to_selected_poll ( bContext C)
static

NOTE: Can not return here, because CTX_DATA_BEGIN_WITH_ID allocated a list that needs to be freed by CTX_DATA_END.

NOTE: Can not return here, because CTX_DATA_BEGIN allocated a list that needs to be freed by CTX_DATA_END.

Definition at line 1770 of file object_constraint.c.

References C, CTX_DATA_BEGIN, CTX_DATA_BEGIN_WITH_ID, CTX_DATA_END, CTX_data_pointer_get_type(), CTX_wm_operator_poll_msg_set(), PointerRNA::data, ED_object_active_context(), ED_object_constraint_list_from_constraint(), PointerRNA::owner_id, ptr, and UNUSED_VARS.

Referenced by CONSTRAINT_OT_copy_to_selected().

◆ constraint_delete_exec()

static int constraint_delete_exec ( bContext C,
wmOperator op 
)
static

◆ constraint_delete_invoke()

static int constraint_delete_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ constraint_move_down_exec()

static int constraint_move_down_exec ( bContext C,
wmOperator op 
)
static

◆ constraint_move_down_invoke()

static int constraint_move_down_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ constraint_move_to_index_exec()

static int constraint_move_to_index_exec ( bContext C,
wmOperator op 
)
static

◆ constraint_move_to_index_invoke()

static int constraint_move_to_index_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ constraint_move_up_exec()

static int constraint_move_up_exec ( bContext C,
wmOperator op 
)
static

◆ constraint_move_up_invoke()

static int constraint_move_up_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ CONSTRAINT_OT_apply()

void CONSTRAINT_OT_apply ( wmOperatorType ot)

◆ CONSTRAINT_OT_childof_clear_inverse()

void CONSTRAINT_OT_childof_clear_inverse ( wmOperatorType ot)

◆ CONSTRAINT_OT_childof_set_inverse()

void CONSTRAINT_OT_childof_set_inverse ( wmOperatorType ot)

◆ CONSTRAINT_OT_copy()

void CONSTRAINT_OT_copy ( wmOperatorType ot)

◆ CONSTRAINT_OT_copy_to_selected()

void CONSTRAINT_OT_copy_to_selected ( wmOperatorType ot)

◆ CONSTRAINT_OT_delete()

void CONSTRAINT_OT_delete ( wmOperatorType ot)

◆ CONSTRAINT_OT_followpath_path_animate()

void CONSTRAINT_OT_followpath_path_animate ( wmOperatorType ot)

◆ CONSTRAINT_OT_limitdistance_reset()

void CONSTRAINT_OT_limitdistance_reset ( wmOperatorType ot)

◆ CONSTRAINT_OT_move_down()

void CONSTRAINT_OT_move_down ( wmOperatorType ot)

◆ CONSTRAINT_OT_move_to_index()

void CONSTRAINT_OT_move_to_index ( wmOperatorType ot)

◆ CONSTRAINT_OT_move_up()

void CONSTRAINT_OT_move_up ( wmOperatorType ot)

◆ CONSTRAINT_OT_objectsolver_clear_inverse()

void CONSTRAINT_OT_objectsolver_clear_inverse ( wmOperatorType ot)

◆ CONSTRAINT_OT_objectsolver_set_inverse()

void CONSTRAINT_OT_objectsolver_set_inverse ( wmOperatorType ot)

◆ CONSTRAINT_OT_stretchto_reset()

void CONSTRAINT_OT_stretchto_reset ( wmOperatorType ot)

◆ constraint_type_get()

static int constraint_type_get ( Object owner,
bPoseChannel pchan 
)
static

◆ ED_object_constraint_active_get()

bConstraint* ED_object_constraint_active_get ( struct Object ob)

Single constraint.

Definition at line 143 of file object_constraint.c.

References BKE_constraints_active_get(), and ED_object_constraint_active_list().

◆ ED_object_constraint_active_list()

ListBase* ED_object_constraint_active_list ( struct Object ob)

If object is in pose-mode, return active bone constraints, else object constraints. No constraints are returned for a bone on an inactive bone-layer.

Definition at line 69 of file object_constraint.c.

References BKE_pose_channel_active_if_layer_visible(), bPoseChannel::constraints, Object::constraints, Object::mode, NULL, and OB_MODE_POSE.

Referenced by ED_object_constraint_active_get(), BCAnimationSampler::find_depending_animated(), pose_constraint_add_exec(), and pose_ik_add_exec().

◆ ED_object_constraint_active_set()

void ED_object_constraint_active_set ( Object ob,
bConstraint con 
)

◆ ED_object_constraint_copy_for_object()

void ED_object_constraint_copy_for_object ( Main bmain,
Object ob_dst,
bConstraint con 
)

◆ ED_object_constraint_copy_for_pose()

void ED_object_constraint_copy_for_pose ( Main bmain,
Object ob_dst,
bPoseChannel pchan,
bConstraint con 
)

◆ ED_object_constraint_dependency_tag_update()

void ED_object_constraint_dependency_tag_update ( Main bmain,
Object ob,
bConstraint con 
)

◆ ED_object_constraint_dependency_update()

void ED_object_constraint_dependency_update ( Main bmain,
Object ob 
)

◆ ED_object_constraint_link()

void ED_object_constraint_link ( Main bmain,
Object ob_dst,
ListBase dst,
ListBase src 
)

◆ ED_object_constraint_list_from_constraint()

ListBase* ED_object_constraint_list_from_constraint ( struct Object ob,
struct bConstraint con,
struct bPoseChannel **  r_pchan 
)

◆ ED_object_constraint_move_to_index()

bool ED_object_constraint_move_to_index ( Object ob,
bConstraint con,
const int  index 
)

◆ ED_object_constraint_tag_update()

void ED_object_constraint_tag_update ( Main bmain,
Object ob,
bConstraint con 
)

◆ ED_object_constraint_update()

void ED_object_constraint_update ( Main bmain,
Object ob 
)

◆ ED_object_pose_constraint_list()

ListBase* ED_object_pose_constraint_list ( const bContext C)

◆ edit_constraint_invoke_properties()

static bool edit_constraint_invoke_properties ( bContext C,
wmOperator op,
const wmEvent event,
int *  r_retval 
)
static

◆ edit_constraint_liboverride_allowed_poll()

static bool edit_constraint_liboverride_allowed_poll ( bContext C)
static

◆ edit_constraint_poll()

static bool edit_constraint_poll ( bContext C)
static

◆ edit_constraint_poll_generic()

static bool edit_constraint_poll_generic ( bContext C,
StructRNA rna_type,
const bool  is_liboverride_allowed 
)
static

◆ edit_constraint_properties()

static void edit_constraint_properties ( wmOperatorType ot)
static

◆ edit_constraint_property_get()

static bConstraint* edit_constraint_property_get ( bContext C,
wmOperator op,
Object ob,
int  type 
)
static

◆ edit_constraint_report_property()

static void edit_constraint_report_property ( wmOperatorType ot)
static

◆ followpath_path_animate_exec()

static int followpath_path_animate_exec ( bContext C,
wmOperator op 
)
static

◆ followpath_path_animate_invoke()

static int followpath_path_animate_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ force_evaluation_if_constraint_disabled()

static void force_evaluation_if_constraint_disabled ( bContext C,
Object ob,
bConstraint con 
)
static

◆ get_new_constraint_target()

static bool get_new_constraint_target ( bContext C,
int  con_type,
Object **  tar_ob,
bPoseChannel **  tar_pchan,
bool  add 
)
static

◆ limitdistance_reset_exec()

static int limitdistance_reset_exec ( bContext C,
wmOperator op 
)
static

◆ limitdistance_reset_invoke()

static int limitdistance_reset_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ object_constraint_add_exec()

static int object_constraint_add_exec ( bContext C,
wmOperator op 
)
static

◆ object_constraint_add_itemf()

static const EnumPropertyItem* object_constraint_add_itemf ( bContext UNUSEDC,
PointerRNA UNUSEDptr,
PropertyRNA UNUSEDprop,
bool r_free 
)
static

◆ object_constraint_copy_exec()

static int object_constraint_copy_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ object_constraints_clear_exec()

static int object_constraints_clear_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ OBJECT_OT_constraint_add()

void OBJECT_OT_constraint_add ( wmOperatorType ot)

◆ OBJECT_OT_constraint_add_with_targets()

void OBJECT_OT_constraint_add_with_targets ( wmOperatorType ot)

◆ OBJECT_OT_constraints_clear()

void OBJECT_OT_constraints_clear ( wmOperatorType ot)

◆ OBJECT_OT_constraints_copy()

void OBJECT_OT_constraints_copy ( wmOperatorType ot)

◆ object_pose_tag_update()

static void object_pose_tag_update ( Main bmain,
Object ob 
)
static

◆ object_test_constraint()

static void object_test_constraint ( Main bmain,
Object ob,
bConstraint con 
)
static

◆ object_test_constraints()

void object_test_constraints ( Main bmain,
Object ob 
)

◆ objectsolver_clear_inverse_exec()

static int objectsolver_clear_inverse_exec ( bContext C,
wmOperator op 
)
static

◆ objectsolver_clear_inverse_invoke()

static int objectsolver_clear_inverse_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ objectsolver_set_inverse_exec()

static int objectsolver_set_inverse_exec ( bContext C,
wmOperator op 
)
static

◆ objectsolver_set_inverse_invoke()

static int objectsolver_set_inverse_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ pose_constraint_add_exec()

static int pose_constraint_add_exec ( bContext C,
wmOperator op 
)
static

◆ pose_constraint_copy_exec()

static int pose_constraint_copy_exec ( bContext C,
wmOperator op 
)
static

◆ pose_constraints_clear_exec()

static int pose_constraints_clear_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ pose_ik_add_exec()

static int pose_ik_add_exec ( bContext C,
wmOperator op 
)
static

◆ pose_ik_add_invoke()

static int pose_ik_add_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ pose_ik_clear_exec()

static int pose_ik_clear_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ POSE_OT_constraint_add()

void POSE_OT_constraint_add ( wmOperatorType ot)

◆ POSE_OT_constraint_add_with_targets()

void POSE_OT_constraint_add_with_targets ( wmOperatorType ot)

◆ POSE_OT_constraints_clear()

void POSE_OT_constraints_clear ( wmOperatorType ot)

◆ POSE_OT_constraints_copy()

void POSE_OT_constraints_copy ( wmOperatorType ot)

◆ POSE_OT_ik_add()

void POSE_OT_ik_add ( wmOperatorType ot)

◆ POSE_OT_ik_clear()

void POSE_OT_ik_clear ( wmOperatorType ot)

◆ set_constraint_nth_target()

static void set_constraint_nth_target ( bConstraint con,
Object target,
const char  subtarget[],
int  index 
)
static

◆ stretchto_reset_exec()

static int stretchto_reset_exec ( bContext C,
wmOperator op 
)
static

◆ stretchto_reset_invoke()

static int stretchto_reset_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ test_constraint()

static void test_constraint ( Main bmain,
Object owner,
bPoseChannel pchan,
bConstraint con,
int  type 
)
static

◆ test_constraints()

static void test_constraints ( Main bmain,
Object ob,
bPoseChannel pchan 
)
static

Variable Documentation

◆ constraint_owner_items

const EnumPropertyItem constraint_owner_items[]
static
Initial value:
= {
"OBJECT",
0,
"Object",
"Edit a constraint on the active object"},
{EDIT_CONSTRAINT_OWNER_BONE, "BONE", 0, "Bone", "Edit a constraint on the active bone"},
{0, NULL, 0, NULL, NULL},
}
#define EDIT_CONSTRAINT_OWNER_BONE
#define EDIT_CONSTRAINT_OWNER_OBJECT

Definition at line 645 of file object_constraint.c.

Referenced by edit_constraint_properties().