Blender  V3.3
Classes | Macros | Typedefs | Functions | Variables
constraint.c File Reference
#include <float.h>
#include <math.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_kdopbvh.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_string_utils.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_cachefile_types.h"
#include "DNA_constraint_types.h"
#include "DNA_curve_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
#include "DNA_lattice_types.h"
#include "DNA_movieclip_types.h"
#include "DNA_scene_types.h"
#include "DNA_tracking_types.h"
#include "BKE_action.h"
#include "BKE_anim_path.h"
#include "BKE_animsys.h"
#include "BKE_armature.h"
#include "BKE_bvhutils.h"
#include "BKE_cachefile.h"
#include "BKE_camera.h"
#include "BKE_constraint.h"
#include "BKE_curve.h"
#include "BKE_deform.h"
#include "BKE_displist.h"
#include "BKE_editmesh.h"
#include "BKE_fcurve_driver.h"
#include "BKE_global.h"
#include "BKE_idprop.h"
#include "BKE_lib_id.h"
#include "BKE_mesh.h"
#include "BKE_mesh_runtime.h"
#include "BKE_movieclip.h"
#include "BKE_object.h"
#include "BKE_scene.h"
#include "BKE_shrinkwrap.h"
#include "BKE_tracking.h"
#include "BIK_api.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "BLO_read_write.h"
#include "CLG_log.h"

Go to the source code of this file.

Classes

struct  FollowTrackContext
 
struct  tConstraintLinkData
 

Macros

#define DNA_DEPRECATED_ALLOW
 
#define VALID_CONS_TARGET(ct)   ((ct) && (ct->tar))
 
#define SINGLETARGET_GET_TARS(con, datatar, datasubtarget, ct, list)
 
#define SINGLETARGETNS_GET_TARS(con, datatar, ct, list)
 
#define SINGLETARGET_FLUSH_TARS(con, datatar, datasubtarget, ct, list, no_copy)
 
#define SINGLETARGETNS_FLUSH_TARS(con, datatar, ct, list, no_copy)
 

Typedefs

typedef struct FollowTrackContext FollowTrackContext
 
typedef struct tConstraintLinkData tConstraintLinkData
 

Functions

static void damptrack_do_transform (float matrix[4][4], const float tarvec[3], int track_axis)
 
static bConstraintconstraint_find_original (Object *ob, bPoseChannel *pchan, bConstraint *con, Object **r_orig_ob)
 
static bConstraintconstraint_find_original_for_update (bConstraintOb *cob, bConstraint *con)
 
void BKE_constraint_unique_name (bConstraint *con, ListBase *list)
 
bConstraintObBKE_constraints_make_evalob (Depsgraph *depsgraph, Scene *scene, Object *ob, void *subdata, short datatype)
 
void BKE_constraints_clear_evalob (bConstraintOb *cob)
 
void BKE_constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, bConstraintOb *cob, float mat[4][4], short from, short to, const bool keep_scale)
 
static void contarget_get_mesh_mat (Object *ob, const char *substring, float mat[4][4])
 
static void contarget_get_lattice_mat (Object *ob, const char *substring, float mat[4][4])
 
static void constraint_target_to_mat4 (Object *ob, const char *substring, bConstraintOb *cob, float mat[4][4], short from, short to, short flag, float headtail)
 
static void default_get_tarmat (struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
 
static void default_get_tarmat_full_bbone (struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
 
static bool is_custom_space_needed (bConstraint *con)
 
static void childof_new_data (void *cdata)
 
static void childof_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int childof_get_tars (bConstraint *con, ListBase *list)
 
static void childof_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void childof_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void trackto_new_data (void *cdata)
 
static void trackto_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int trackto_get_tars (bConstraint *con, ListBase *list)
 
static void trackto_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static int basis_cross (int n, int m)
 
static void vectomat (const float vec[3], const float target_up[3], short axis, short upflag, short flags, float m[3][3])
 
static void trackto_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void kinematic_new_data (void *cdata)
 
static void kinematic_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int kinematic_get_tars (bConstraint *con, ListBase *list)
 
static void kinematic_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void kinematic_get_tarmat (struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
 
static void followpath_new_data (void *cdata)
 
static void followpath_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int followpath_get_tars (bConstraint *con, ListBase *list)
 
static void followpath_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void followpath_get_tarmat (struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *UNUSED(cob), bConstraintTarget *ct, float UNUSED(ctime))
 
static void followpath_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void loclimit_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
 
static void rotlimit_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
 
static void sizelimit_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
 
static void loclike_new_data (void *cdata)
 
static void loclike_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int loclike_get_tars (bConstraint *con, ListBase *list)
 
static void loclike_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void loclike_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void rotlike_new_data (void *cdata)
 
static void rotlike_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int rotlike_get_tars (bConstraint *con, ListBase *list)
 
static void rotlike_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void rotlike_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void sizelike_new_data (void *cdata)
 
static void sizelike_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int sizelike_get_tars (bConstraint *con, ListBase *list)
 
static void sizelike_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void sizelike_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void translike_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int translike_get_tars (bConstraint *con, ListBase *list)
 
static void translike_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void translike_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void samevolume_new_data (void *cdata)
 
static void samevolume_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
 
static void pycon_free (bConstraint *con)
 
static void pycon_copy (bConstraint *con, bConstraint *srccon)
 
static void pycon_new_data (void *cdata)
 
static int pycon_get_tars (bConstraint *con, ListBase *list)
 
static void pycon_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static void pycon_get_tarmat (struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
 
static void pycon_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void armdef_free (bConstraint *con)
 
static void armdef_copy (bConstraint *con, bConstraint *srccon)
 
static int armdef_get_tars (bConstraint *con, ListBase *list)
 
static void armdef_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static void armdef_get_tarmat (struct Depsgraph *UNUSED(depsgraph), bConstraint *UNUSED(con), bConstraintOb *UNUSED(cob), bConstraintTarget *ct, float UNUSED(ctime))
 
static void armdef_accumulate_matrix (const float obmat[4][4], const float iobmat[4][4], const float basemat[4][4], const float bonemat[4][4], float weight, float r_sum_mat[4][4], DualQuat *r_sum_dq)
 
static void armdef_accumulate_bone (bConstraintTarget *ct, bPoseChannel *pchan, const float wco[3], bool force_envelope, float *r_totweight, float r_sum_mat[4][4], DualQuat *r_sum_dq)
 
static void armdef_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void actcon_new_data (void *cdata)
 
static void actcon_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int actcon_get_tars (bConstraint *con, ListBase *list)
 
static void actcon_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void actcon_get_tarmat (struct Depsgraph *depsgraph, bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
 
static void actcon_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void locktrack_new_data (void *cdata)
 
static void locktrack_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int locktrack_get_tars (bConstraint *con, ListBase *list)
 
static void locktrack_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void locktrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void distlimit_new_data (void *cdata)
 
static void distlimit_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int distlimit_get_tars (bConstraint *con, ListBase *list)
 
static void distlimit_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void distlimit_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void stretchto_new_data (void *cdata)
 
static void stretchto_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int stretchto_get_tars (bConstraint *con, ListBase *list)
 
static void stretchto_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void stretchto_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void minmax_new_data (void *cdata)
 
static void minmax_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int minmax_get_tars (bConstraint *con, ListBase *list)
 
static void minmax_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void minmax_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void clampto_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int clampto_get_tars (bConstraint *con, ListBase *list)
 
static void clampto_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void clampto_get_tarmat (struct Depsgraph *UNUSED(depsgraph), bConstraint *UNUSED(con), bConstraintOb *UNUSED(cob), bConstraintTarget *ct, float UNUSED(ctime))
 
static void clampto_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void transform_new_data (void *cdata)
 
static void transform_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int transform_get_tars (bConstraint *con, ListBase *list)
 
static void transform_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void transform_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void shrinkwrap_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static void shrinkwrap_new_data (void *cdata)
 
static int shrinkwrap_get_tars (bConstraint *con, ListBase *list)
 
static void shrinkwrap_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void shrinkwrap_get_tarmat (struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
 
static void shrinkwrap_evaluate (bConstraint *UNUSED(con), bConstraintOb *cob, ListBase *targets)
 
static void damptrack_new_data (void *cdata)
 
static void damptrack_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int damptrack_get_tars (bConstraint *con, ListBase *list)
 
static void damptrack_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void damptrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void splineik_free (bConstraint *con)
 
static void splineik_copy (bConstraint *con, bConstraint *srccon)
 
static void splineik_new_data (void *cdata)
 
static void splineik_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int splineik_get_tars (bConstraint *con, ListBase *list)
 
static void splineik_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void splineik_get_tarmat (struct Depsgraph *UNUSED(depsgraph), bConstraint *UNUSED(con), bConstraintOb *UNUSED(cob), bConstraintTarget *ct, float UNUSED(ctime))
 
static void pivotcon_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static int pivotcon_get_tars (bConstraint *con, ListBase *list)
 
static void pivotcon_flush_tars (bConstraint *con, ListBase *list, bool no_copy)
 
static void pivotcon_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void followtrack_new_data (void *cdata)
 
static void followtrack_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static MovieClipfollowtrack_tracking_clip_get (bConstraint *con, bConstraintOb *cob)
 
static MovieTrackingObjectfollowtrack_tracking_object_get (bConstraint *con, bConstraintOb *cob)
 
static Objectfollowtrack_camera_object_get (bConstraint *con, bConstraintOb *cob)
 
static bool followtrack_context_init (FollowTrackContext *context, bConstraint *con, bConstraintOb *cob)
 
static void followtrack_evaluate_using_3d_position_object (FollowTrackContext *context, bConstraintOb *cob)
 
static void followtrack_evaluate_using_3d_position_camera (FollowTrackContext *context, bConstraintOb *cob)
 
static void followtrack_evaluate_using_3d_position (FollowTrackContext *context, bConstraintOb *cob)
 
static void followtrack_undistort_if_needed (FollowTrackContext *context, const int clip_width, const int clip_height, float marker_position[2])
 
static void followtrack_fit_frame (FollowTrackContext *context, const int clip_width, const int clip_height, float marker_position[2])
 
static float followtrack_distance_from_viewplane_get (FollowTrackContext *context, bConstraintOb *cob)
 
static void followtrack_project_to_depth_object_if_needed (FollowTrackContext *context, bConstraintOb *cob)
 
static void followtrack_evaluate_using_2d_position (FollowTrackContext *context, bConstraintOb *cob)
 
static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
 
static void camerasolver_new_data (void *cdata)
 
static void camerasolver_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static void camerasolver_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
 
static void objectsolver_new_data (void *cdata)
 
static void objectsolver_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static void objectsolver_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
 
static void transformcache_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
 
static void transformcache_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
 
static void transformcache_copy (bConstraint *con, bConstraint *srccon)
 
static void transformcache_free (bConstraint *con)
 
static void transformcache_new_data (void *cdata)
 
static void constraints_init_typeinfo (void)
 
const bConstraintTypeInfoBKE_constraint_typeinfo_from_type (int type)
 
const bConstraintTypeInfoBKE_constraint_typeinfo_get (bConstraint *con)
 
static void con_unlink_refs_cb (bConstraint *UNUSED(con), ID **idpoin, bool is_reference, void *UNUSED(userData))
 
static void con_invoke_id_looper (const bConstraintTypeInfo *cti, bConstraint *con, ConstraintIDFunc func, void *userdata)
 
void BKE_constraint_free_data_ex (bConstraint *con, bool do_id_user)
 
void BKE_constraint_free_data (bConstraint *con)
 
void BKE_constraints_free_ex (ListBase *list, bool do_id_user)
 
void BKE_constraints_free (ListBase *list)
 
bool BKE_constraint_remove (ListBase *list, bConstraint *con)
 
bool BKE_constraint_remove_ex (ListBase *list, Object *ob, bConstraint *con, bool clear_dep)
 
bool BKE_constraint_apply_for_object (Depsgraph *depsgraph, Scene *scene, Object *ob, bConstraint *con)
 
bool BKE_constraint_apply_and_remove_for_object (Depsgraph *depsgraph, Scene *scene, ListBase *constraints, Object *ob, bConstraint *con)
 
bool BKE_constraint_apply_for_pose (Depsgraph *depsgraph, Scene *scene, Object *ob, bPoseChannel *pchan, bConstraint *con)
 
bool BKE_constraint_apply_and_remove_for_pose (Depsgraph *depsgraph, Scene *scene, ListBase *constraints, Object *ob, bConstraint *con, bPoseChannel *pchan)
 
void BKE_constraint_panel_expand (bConstraint *con)
 
static bConstraintadd_new_constraint_internal (const char *name, short type)
 
static void add_new_constraint_to_list (Object *ob, bPoseChannel *pchan, bConstraint *con)
 
static bConstraintadd_new_constraint (Object *ob, bPoseChannel *pchan, const char *name, short type)
 
bool BKE_constraint_target_uses_bbone (struct bConstraint *con, struct bConstraintTarget *ct)
 
bConstraintBKE_constraint_add_for_pose (Object *ob, bPoseChannel *pchan, const char *name, short type)
 
bConstraintBKE_constraint_add_for_object (Object *ob, const char *name, short type)
 
void BKE_constraints_id_loop (ListBase *conlist, ConstraintIDFunc func, void *userdata)
 
static void con_extern_cb (bConstraint *UNUSED(con), ID **idpoin, bool UNUSED(is_reference), void *UNUSED(userData))
 
static void con_fix_copied_refs_cb (bConstraint *UNUSED(con), ID **idpoin, bool is_reference, void *UNUSED(userData))
 
static void constraint_copy_data_ex (bConstraint *dst, bConstraint *src, const int flag, const bool do_extern)
 
bConstraintBKE_constraint_duplicate_ex (bConstraint *src, const int flag, const bool do_extern)
 
bConstraintBKE_constraint_copy_for_pose (Object *ob, bPoseChannel *pchan, bConstraint *src)
 
bConstraintBKE_constraint_copy_for_object (Object *ob, bConstraint *src)
 
void BKE_constraints_copy_ex (ListBase *dst, const ListBase *src, const int flag, bool do_extern)
 
void BKE_constraints_copy (ListBase *dst, const ListBase *src, bool do_extern)
 
bConstraintBKE_constraints_find_name (ListBase *list, const char *name)
 
bConstraintBKE_constraints_active_get (ListBase *list)
 
void BKE_constraints_active_set (ListBase *list, bConstraint *con)
 
static bConstraintconstraint_list_find_from_target (ListBase *constraints, bConstraintTarget *tgt)
 
bConstraintBKE_constraint_find_from_target (Object *ob, bConstraintTarget *tgt, bPoseChannel **r_pchan)
 
bool BKE_constraint_is_nonlocal_in_liboverride (const Object *ob, const bConstraint *con)
 
int BKE_constraint_targets_get (struct bConstraint *con, struct ListBase *r_targets)
 
void BKE_constraint_targets_flush (struct bConstraint *con, struct ListBase *targets, bool no_copy)
 
void BKE_constraint_target_matrix_get (struct Depsgraph *depsgraph, Scene *scene, bConstraint *con, int index, short ownertype, void *ownerdata, float mat[4][4], float ctime)
 
void BKE_constraint_targets_for_solving_get (struct Depsgraph *depsgraph, bConstraint *con, bConstraintOb *cob, ListBase *targets, float ctime)
 
void BKE_constraint_custom_object_space_init (bConstraintOb *cob, bConstraint *con)
 
void BKE_constraints_solve (struct Depsgraph *depsgraph, ListBase *conlist, bConstraintOb *cob, float ctime)
 
void BKE_constraint_blend_write (BlendWriter *writer, ListBase *conlist)
 
void BKE_constraint_blend_read_data (BlendDataReader *reader, ListBase *lb)
 
static void lib_link_constraint_cb (bConstraint *UNUSED(con), ID **idpoin, bool UNUSED(is_reference), void *userdata)
 
void BKE_constraint_blend_read_lib (BlendLibReader *reader, ID *id, ListBase *conlist)
 
static void expand_constraint_cb (bConstraint *UNUSED(con), ID **idpoin, bool UNUSED(is_reference), void *userdata)
 
void BKE_constraint_blend_read_expand (BlendExpander *expander, ListBase *lb)
 

Variables

static CLG_LogRef LOG = {"bke.constraint"}
 
static bConstraintTypeInfo CTI_CHILDOF
 
static bConstraintTypeInfo CTI_TRACKTO
 
static bConstraintTypeInfo CTI_KINEMATIC
 
static bConstraintTypeInfo CTI_FOLLOWPATH
 
static bConstraintTypeInfo CTI_LOCLIMIT
 
static bConstraintTypeInfo CTI_ROTLIMIT
 
static bConstraintTypeInfo CTI_SIZELIMIT
 
static bConstraintTypeInfo CTI_LOCLIKE
 
static bConstraintTypeInfo CTI_ROTLIKE
 
static bConstraintTypeInfo CTI_SIZELIKE
 
static bConstraintTypeInfo CTI_TRANSLIKE
 
static bConstraintTypeInfo CTI_SAMEVOL
 
static bConstraintTypeInfo CTI_PYTHON
 
static bConstraintTypeInfo CTI_ARMATURE
 
static bConstraintTypeInfo CTI_ACTION
 
static bConstraintTypeInfo CTI_LOCKTRACK
 
static bConstraintTypeInfo CTI_DISTLIMIT
 
static bConstraintTypeInfo CTI_STRETCHTO
 
static bConstraintTypeInfo CTI_MINMAX
 
static bConstraintTypeInfo CTI_CLAMPTO
 
static bConstraintTypeInfo CTI_TRANSFORM
 
static bConstraintTypeInfo CTI_SHRINKWRAP
 
static const float track_dir_vecs [6][3]
 
static bConstraintTypeInfo CTI_DAMPTRACK
 
static bConstraintTypeInfo CTI_SPLINEIK
 
static bConstraintTypeInfo CTI_PIVOT
 
static bConstraintTypeInfo CTI_FOLLOWTRACK
 
static bConstraintTypeInfo CTI_CAMERASOLVER
 
static bConstraintTypeInfo CTI_OBJECTSOLVER
 
static bConstraintTypeInfo CTI_TRANSFORM_CACHE
 
static bConstraintTypeInfoconstraintsTypeInfo [NUM_CONSTRAINT_TYPES]
 
static short CTI_INIT = 1
 

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 9 of file constraint.c.

◆ SINGLETARGET_FLUSH_TARS

#define SINGLETARGET_FLUSH_TARS (   con,
  datatar,
  datasubtarget,
  ct,
  list,
  no_copy 
)
Value:
{ \
if (ct) { \
bConstraintTarget *ctn = ct->next; \
if (no_copy == 0) { \
datatar = ct->tar; \
BLI_strncpy(datasubtarget, ct->subtarget, sizeof(datasubtarget)); \
con->tarspace = (char)ct->space; \
} \
BLI_freelinkN(list, ct); \
ct = ctn; \
} \
} \
(void)0
void BLI_freelinkN(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
Definition: listbase.c:239
SyclQueue void void size_t num_bytes void

Definition at line 914 of file constraint.c.

◆ SINGLETARGET_GET_TARS

#define SINGLETARGET_GET_TARS (   con,
  datatar,
  datasubtarget,
  ct,
  list 
)
Value:
{ \
ct = MEM_callocN(sizeof(bConstraintTarget), "tempConstraintTarget"); \
\
ct->tar = datatar; \
BLI_strncpy(ct->subtarget, datasubtarget, sizeof(ct->subtarget)); \
ct->space = con->tarspace; \
ct->flag = CONSTRAINT_TAR_TEMP; \
if (ct->tar) { \
if ((ct->tar->type == OB_ARMATURE) && (ct->subtarget[0])) { \
bPoseChannel *pchan = BKE_pose_channel_find_name(ct->tar->pose, ct->subtarget); \
ct->type = CONSTRAINT_OBTYPE_BONE; \
ct->rotOrder = (pchan) ? (pchan->rotmode) : EULER_ORDER_DEFAULT; \
} \
else if (OB_TYPE_SUPPORT_VGROUP(ct->tar->type) && (ct->subtarget[0])) { \
ct->type = CONSTRAINT_OBTYPE_VERT; \
ct->rotOrder = EULER_ORDER_DEFAULT; \
} \
else { \
ct->rotOrder = ct->tar->rotmode; \
} \
} \
BLI_addtail(list, ct); \
} \
(void)0
struct bPoseChannel * BKE_pose_channel_find_name(const struct bPose *pose, const char *name)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
Definition: listbase.c:80
@ EULER_ORDER_DEFAULT
@ CONSTRAINT_TAR_TEMP
@ CONSTRAINT_OBTYPE_OBJECT
@ CONSTRAINT_OBTYPE_BONE
@ CONSTRAINT_OBTYPE_VERT
@ OB_ARMATURE
#define OB_TYPE_SUPPORT_VGROUP(_type)
void *(* MEM_callocN)(size_t len, const char *str)
Definition: mallocn.c:31

Definition at line 858 of file constraint.c.

◆ SINGLETARGETNS_FLUSH_TARS

#define SINGLETARGETNS_FLUSH_TARS (   con,
  datatar,
  ct,
  list,
  no_copy 
)
Value:
{ \
if (ct) { \
bConstraintTarget *ctn = ct->next; \
if (no_copy == 0) { \
datatar = ct->tar; \
con->tarspace = (char)ct->space; \
} \
BLI_freelinkN(list, ct); \
ct = ctn; \
} \
} \
(void)0

Definition at line 936 of file constraint.c.

◆ SINGLETARGETNS_GET_TARS

#define SINGLETARGETNS_GET_TARS (   con,
  datatar,
  ct,
  list 
)
Value:
{ \
ct = MEM_callocN(sizeof(bConstraintTarget), "tempConstraintTarget"); \
\
ct->tar = datatar; \
ct->space = con->tarspace; \
ct->flag = CONSTRAINT_TAR_TEMP; \
if (ct->tar) { \
} \
BLI_addtail(list, ct); \
} \
(void)0

Definition at line 893 of file constraint.c.

◆ VALID_CONS_TARGET

#define VALID_CONS_TARGET (   ct)    ((ct) && (ct->tar))

Definition at line 92 of file constraint.c.

Typedef Documentation

◆ FollowTrackContext

◆ tConstraintLinkData

Function Documentation

◆ actcon_evaluate()

static void actcon_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ actcon_flush_tars()

static void actcon_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 2793 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ actcon_get_tarmat()

static void actcon_get_tarmat ( struct Depsgraph depsgraph,
bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
)
static

◆ actcon_get_tars()

static int actcon_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 2778 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ actcon_id_looper()

static void actcon_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 2767 of file constraint.c.

References data, and bConstraint::data.

◆ actcon_new_data()

static void actcon_new_data ( void cdata)
static

Definition at line 2756 of file constraint.c.

References ACTCON_MIX_AFTER, and data.

◆ add_new_constraint()

static bConstraint* add_new_constraint ( Object ob,
bPoseChannel pchan,
const char *  name,
short  type 
)
static

◆ add_new_constraint_internal()

static bConstraint* add_new_constraint_internal ( const char *  name,
short  type 
)
static

◆ add_new_constraint_to_list()

static void add_new_constraint_to_list ( Object ob,
bPoseChannel pchan,
bConstraint con 
)
static

◆ armdef_accumulate_bone()

static void armdef_accumulate_bone ( bConstraintTarget ct,
bPoseChannel pchan,
const float  wco[3],
bool  force_envelope,
float r_totweight,
float  r_sum_mat[4][4],
DualQuat r_sum_dq 
)
static

◆ armdef_accumulate_matrix()

static void armdef_accumulate_matrix ( const float  obmat[4][4],
const float  iobmat[4][4],
const float  basemat[4][4],
const float  bonemat[4][4],
float  weight,
float  r_sum_mat[4][4],
DualQuat r_sum_dq 
)
static

◆ armdef_copy()

static void armdef_copy ( bConstraint con,
bConstraint srccon 
)
static

◆ armdef_evaluate()

static void armdef_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ armdef_free()

static void armdef_free ( bConstraint con)
static

Definition at line 2509 of file constraint.c.

References BLI_freelistN(), data, and bConstraint::data.

◆ armdef_get_tarmat()

static void armdef_get_tarmat ( struct Depsgraph UNUSEDdepsgraph,
bConstraint UNUSEDcon,
bConstraintOb UNUSEDcob,
bConstraintTarget ct,
float   UNUSEDctime 
)
static

◆ armdef_get_tars()

static int armdef_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 2525 of file constraint.c.

References BLI_listbase_count(), data, and bConstraint::data.

◆ armdef_id_looper()

static void armdef_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 2538 of file constraint.c.

References data, bConstraint::data, LISTBASE_FOREACH, and bConstraintTarget::tar.

◆ basis_cross()

static int basis_cross ( int  n,
int  m 
)
static

Definition at line 1170 of file constraint.c.

Referenced by vectomat().

◆ BKE_constraint_add_for_object()

bConstraint* BKE_constraint_add_for_object ( struct Object ob,
const char *  name,
short  type 
)

◆ BKE_constraint_add_for_pose()

bConstraint* BKE_constraint_add_for_pose ( struct Object ob,
struct bPoseChannel pchan,
const char *  name,
short  type 
)

Add new constraint for the given bone.

Definition at line 5858 of file constraint.c.

References add_new_constraint(), NULL, and type.

Referenced by add_temporary_ik_constraint(), and constraint_add_exec().

◆ BKE_constraint_apply_and_remove_for_object()

bool BKE_constraint_apply_and_remove_for_object ( Depsgraph depsgraph,
Scene scene,
ListBase constraints,
Object ob,
bConstraint con 
)

◆ BKE_constraint_apply_and_remove_for_pose()

bool BKE_constraint_apply_and_remove_for_pose ( Depsgraph depsgraph,
Scene scene,
ListBase constraints,
Object ob,
bConstraint con,
bPoseChannel pchan 
)

◆ BKE_constraint_apply_for_object()

bool BKE_constraint_apply_for_object ( struct Depsgraph depsgraph,
struct Scene scene,
struct Object ob,
struct bConstraint con 
)

◆ BKE_constraint_apply_for_pose()

bool BKE_constraint_apply_for_pose ( Depsgraph depsgraph,
Scene scene,
Object ob,
bPoseChannel pchan,
bConstraint con 
)

◆ BKE_constraint_blend_read_data()

void BKE_constraint_blend_read_data ( BlendDataReader reader,
ListBase lb 
)

◆ BKE_constraint_blend_read_expand()

void BKE_constraint_blend_read_expand ( BlendExpander expander,
ListBase lb 
)

◆ BKE_constraint_blend_read_lib()

void BKE_constraint_blend_read_lib ( BlendLibReader reader,
ID id,
ListBase conlist 
)

◆ BKE_constraint_blend_write()

void BKE_constraint_blend_write ( BlendWriter writer,
ListBase conlist 
)

◆ BKE_constraint_copy_for_object()

bConstraint* BKE_constraint_copy_for_object ( struct Object ob,
struct bConstraint src 
)

Add a copy of the given constraint for the given object.

Definition at line 5966 of file constraint.c.

References add_new_constraint_to_list(), BKE_constraint_duplicate_ex(), ID_IS_LINKED, NULL, and src.

Referenced by constraint_copy_exec(), constraint_copy_to_selected_exec(), and ED_object_constraint_copy_for_object().

◆ BKE_constraint_copy_for_pose()

bConstraint* BKE_constraint_copy_for_pose ( struct Object ob,
struct bPoseChannel pchan,
struct bConstraint src 
)

Add a copy of the given constraint for the given bone.

Definition at line 5955 of file constraint.c.

References add_new_constraint_to_list(), BKE_constraint_duplicate_ex(), ID_IS_LINKED, NULL, and src.

Referenced by constraint_copy_exec(), constraint_copy_to_selected_exec(), and ED_object_constraint_copy_for_pose().

◆ BKE_constraint_custom_object_space_init()

void BKE_constraint_custom_object_space_init ( struct bConstraintOb cob,
struct bConstraint con 
)

Initialize the Custom Space matrix inside cob (if required by the constraint).

Parameters
cobConstraint evaluation context (contains the matrix to be initialized).
conConstraint that is about to be evaluated.

Definition at line 6331 of file constraint.c.

References CONSTRAINT_SPACE_WORLD, constraint_target_to_mat4(), is_custom_space_needed(), NULL, bConstraintOb::space_obj_world_matrix, bConstraint::space_object, bConstraint::space_subtarget, and unit_m4().

Referenced by BKE_constraint_target_matrix_get(), BKE_constraints_solve(), constraintTransLim(), OVERLAY_relationship_lines(), updateDuplicateActionConstraintSettings(), and updateDuplicateLocRotConstraintSettings().

◆ BKE_constraint_duplicate_ex()

bConstraint* BKE_constraint_duplicate_ex ( struct bConstraint src,
int  flag,
bool  do_extern 
)

Allocate and duplicate a single constraint, outside of any object/pose context.

Definition at line 5947 of file constraint.c.

References constraint_copy_data_ex(), MEM_dupallocN, bConstraint::next, NULL, bConstraint::prev, and src.

Referenced by BKE_constraint_apply_for_object(), BKE_constraint_apply_for_pose(), BKE_constraint_copy_for_object(), and BKE_constraint_copy_for_pose().

◆ BKE_constraint_find_from_target()

bConstraint* BKE_constraint_find_from_target ( struct Object ob,
struct bConstraintTarget tgt,
struct bPoseChannel **  r_pchan 
)

Finds the constraint that owns the given target within the object.

Definition at line 6052 of file constraint.c.

References bPose::chanbase, constraint_list_find_from_target(), Object::constraints, LISTBASE_FOREACH, NULL, Object::pose, and result.

Referenced by blender::deg::RNANodeQuery::construct_node_identifier().

◆ BKE_constraint_free_data()

void BKE_constraint_free_data ( bConstraint con)

◆ BKE_constraint_free_data_ex()

void BKE_constraint_free_data_ex ( struct bConstraint con,
bool  do_id_user 
)

Free data of a specific constraint if it has any info. Be sure to run BIK_clear_data() when freeing an IK constraint, unless #DAG_relations_tag_update is called.

Definition at line 5549 of file constraint.c.

References BKE_constraint_typeinfo_get(), con_invoke_id_looper(), con_unlink_refs_cb(), bConstraint::data, bConstraintTypeInfo::free_data, MEM_freeN, and NULL.

Referenced by BKE_constraint_free_data(), and BKE_constraints_free_ex().

◆ BKE_constraint_is_nonlocal_in_liboverride()

bool BKE_constraint_is_nonlocal_in_liboverride ( const Object ob,
const bConstraint con 
)

◆ BKE_constraint_mat_convertspace()

void BKE_constraint_mat_convertspace ( struct Object ob,
struct bPoseChannel pchan,
struct bConstraintOb cob,
float  mat[4][4],
short  from,
short  to,
bool  keep_scale 
)

◆ BKE_constraint_panel_expand()

void BKE_constraint_panel_expand ( bConstraint con)

Definition at line 5734 of file constraint.c.

References bConstraint::ui_expand_flag, and UI_PANEL_DATA_EXPAND_ROOT.

Referenced by outliner_set_properties_tab().

◆ BKE_constraint_remove()

bool BKE_constraint_remove ( ListBase list,
struct bConstraint con 
)

Remove the specified constraint from the given constraint stack.

Definition at line 5592 of file constraint.c.

References BKE_constraint_free_data(), and BLI_freelinkN().

Referenced by BKE_constraint_remove_ex(), object_track_clear_exec(), and pose_ik_clear_exec().

◆ BKE_constraint_remove_ex()

bool BKE_constraint_remove_ex ( ListBase list,
Object ob,
bConstraint con,
bool  clear_dep 
)

◆ BKE_constraint_target_matrix_get()

void BKE_constraint_target_matrix_get ( struct Depsgraph depsgraph,
struct Scene scene,
struct bConstraint con,
int  index,
short  ownertype,
void ownerdata,
float  mat[4][4],
float  ctime 
)

This function is a relic from the prior implementations of the constraints system, when all constraints either had one or no targets. It used to be called during the main constraint solving loop, but is now only used for the remaining cases for a few constraints.

None of the actual calculations of the matrices should be done here! Also, this function is not to be used by any new constraints, particularly any that have multiple targets.

Definition at line 6214 of file constraint.c.

References BKE_constraint_custom_object_space_init(), BKE_constraint_typeinfo_get(), BLI_findlink(), CONSTRAINT_OBTYPE_BONE, CONSTRAINT_OBTYPE_OBJECT, copy_m4_m4(), bConstraintOb::depsgraph, depsgraph, bConstraintTypeInfo::flush_constraint_targets, bConstraintTypeInfo::get_constraint_targets, bConstraintTypeInfo::get_target_matrix, bConstraintOb::matrix, bConstraintTarget::matrix, MEM_callocN, MEM_freeN, NULL, bConstraintOb::ob, Object::obmat, bConstraintOb::pchan, bPoseChannel::pose_mat, bConstraintOb::scene, scene, bConstraintOb::startmat, bConstraintOb::type, and unit_m4().

Referenced by base_callback(), ED_object_parent_set(), execute_posetree(), and target_callback().

◆ BKE_constraint_target_uses_bbone()

bool BKE_constraint_target_uses_bbone ( struct bConstraint con,
struct bConstraintTarget ct 
)

◆ BKE_constraint_targets_flush()

void BKE_constraint_targets_flush ( struct bConstraint con,
struct ListBase targets,
bool  no_copy 
)

◆ BKE_constraint_targets_for_solving_get()

void BKE_constraint_targets_for_solving_get ( struct Depsgraph depsgraph,
struct bConstraint con,
struct bConstraintOb ob,
struct ListBase targets,
float  ctime 
)

◆ BKE_constraint_targets_get()

int BKE_constraint_targets_get ( struct bConstraint con,
struct ListBase r_targets 
)

◆ BKE_constraint_typeinfo_from_type()

const bConstraintTypeInfo* BKE_constraint_typeinfo_from_type ( int  type)

This function should be used for getting the appropriate type-info when only a constraint type is known.

Definition at line 5487 of file constraint.c.

References CLOG_WARN, CONSTRAINT_TYPE_NULL, constraints_init_typeinfo(), constraintsTypeInfo, CTI_INIT, LOG, NULL, NUM_CONSTRAINT_TYPES, and type.

Referenced by add_new_constraint_internal(), BKE_constraint_typeinfo_get(), bone_constraint_panel_id(), constraintRotLim(), constraintSizeLim(), constraintTransLim(), and object_constraint_panel_id().

◆ BKE_constraint_typeinfo_get()

const bConstraintTypeInfo* BKE_constraint_typeinfo_get ( struct bConstraint con)

◆ BKE_constraint_unique_name()

void BKE_constraint_unique_name ( struct bConstraint con,
struct ListBase list 
)

Find the first available, non-duplicate name for a given constraint.

Definition at line 112 of file constraint.c.

References BLI_uniquename(), DATA_, and bConstraint::name.

Referenced by add_new_constraint_to_list().

◆ BKE_constraints_active_get()

bConstraint* BKE_constraints_active_get ( struct ListBase list)

Finds the 'active' constraint in a constraint stack.

Definition at line 6001 of file constraint.c.

References CONSTRAINT_ACTIVE, bConstraint::flag, LISTBASE_FOREACH, and NULL.

Referenced by ED_object_constraint_active_get().

◆ BKE_constraints_active_set()

void BKE_constraints_active_set ( ListBase list,
struct bConstraint con 
)

Set the given constraint as the active one (clearing all the others).

Definition at line 6017 of file constraint.c.

References CONSTRAINT_ACTIVE, and LISTBASE_FOREACH.

Referenced by add_new_constraint_to_list(), constraint_fn(), and ED_object_constraint_active_set().

◆ BKE_constraints_clear_evalob()

void BKE_constraints_clear_evalob ( struct bConstraintOb cob)

◆ BKE_constraints_copy()

void BKE_constraints_copy ( ListBase dst,
const ListBase src,
bool  do_extern 
)

Definition at line 5989 of file constraint.c.

References BKE_constraints_copy_ex(), and src.

◆ BKE_constraints_copy_ex()

void BKE_constraints_copy_ex ( ListBase dst,
const ListBase src,
const int  flag,
bool  do_extern 
)

◆ BKE_constraints_find_name()

bConstraint* BKE_constraints_find_name ( ListBase list,
const char *  name 
)

◆ BKE_constraints_free()

void BKE_constraints_free ( ListBase list)

◆ BKE_constraints_free_ex()

void BKE_constraints_free_ex ( struct ListBase list,
bool  do_id_user 
)

Free all constraints from a constraint-stack.

Definition at line 5576 of file constraint.c.

References BKE_constraint_free_data_ex(), BLI_freelistN(), and LISTBASE_FOREACH.

Referenced by BKE_constraints_free(), BKE_pose_channel_free_ex(), and object_free_data().

◆ BKE_constraints_id_loop()

void BKE_constraints_id_loop ( struct ListBase list,
ConstraintIDFunc  func,
void userdata 
)

◆ BKE_constraints_make_evalob()

bConstraintOb* BKE_constraints_make_evalob ( struct Depsgraph depsgraph,
struct Scene scene,
struct Object ob,
void subdata,
short  datatype 
)

◆ BKE_constraints_solve()

void BKE_constraints_solve ( struct Depsgraph depsgraph,
struct ListBase conlist,
struct bConstraintOb cob,
float  ctime 
)

◆ camerasolver_evaluate()

static void camerasolver_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
)
static

◆ camerasolver_id_looper()

static void camerasolver_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 5209 of file constraint.c.

References data, and bConstraint::data.

◆ camerasolver_new_data()

static void camerasolver_new_data ( void cdata)
static

Definition at line 5201 of file constraint.c.

References CAMERASOLVER_ACTIVECLIP, data, and NULL.

◆ childof_evaluate()

static void childof_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ childof_flush_tars()

static void childof_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 991 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ childof_get_tars()

static int childof_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 976 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ childof_id_looper()

static void childof_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 968 of file constraint.c.

References data, and bConstraint::data.

◆ childof_new_data()

static void childof_new_data ( void cdata)
static

◆ clampto_evaluate()

static void clampto_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ clampto_flush_tars()

static void clampto_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 3793 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGETNS_FLUSH_TARS.

◆ clampto_get_tarmat()

static void clampto_get_tarmat ( struct Depsgraph UNUSEDdepsgraph,
bConstraint UNUSEDcon,
bConstraintOb UNUSEDcob,
bConstraintTarget ct,
float   UNUSEDctime 
)
static

Definition at line 3804 of file constraint.c.

References bConstraintTarget::matrix, and unit_m4().

◆ clampto_get_tars()

static int clampto_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 3778 of file constraint.c.

References data, bConstraint::data, and SINGLETARGETNS_GET_TARS.

◆ clampto_id_looper()

static void clampto_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 3770 of file constraint.c.

References data, and bConstraint::data.

◆ con_extern_cb()

static void con_extern_cb ( bConstraint UNUSEDcon,
ID **  idpoin,
bool   UNUSEDis_reference,
void UNUSEDuserData 
)
static

Definition at line 5891 of file constraint.c.

References ID_IS_LINKED, and id_lib_extern().

Referenced by constraint_copy_data_ex().

◆ con_fix_copied_refs_cb()

static void con_fix_copied_refs_cb ( bConstraint UNUSEDcon,
ID **  idpoin,
bool  is_reference,
void UNUSEDuserData 
)
static

Helper for BKE_constraints_copy(), to be used for making sure that user-counts of copied ID's are fixed up.

Definition at line 5905 of file constraint.c.

References id_us_plus().

Referenced by constraint_copy_data_ex().

◆ con_invoke_id_looper()

static void con_invoke_id_looper ( const bConstraintTypeInfo cti,
bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Helper function to invoke the id_looper callback, including custom space.

Definition at line 5537 of file constraint.c.

References bConstraintTypeInfo::id_looper, and bConstraint::space_object.

Referenced by BKE_constraint_free_data_ex(), BKE_constraints_id_loop(), and constraint_copy_data_ex().

◆ con_unlink_refs_cb()

static void con_unlink_refs_cb ( bConstraint UNUSEDcon,
ID **  idpoin,
bool  is_reference,
void UNUSEDuserData 
)
static

Helper function for BKE_constraint_free_data() - unlinks references.

Definition at line 5526 of file constraint.c.

References id_us_min().

Referenced by BKE_constraint_free_data_ex().

◆ constraint_copy_data_ex()

static void constraint_copy_data_ex ( bConstraint dst,
bConstraint src,
const int  flag,
const bool  do_extern 
)
static

◆ constraint_find_original()

static bConstraint * constraint_find_original ( Object ob,
bPoseChannel pchan,
bConstraint con,
Object **  r_orig_ob 
)
static

◆ constraint_find_original_for_update()

static bConstraint * constraint_find_original_for_update ( bConstraintOb cob,
bConstraint con 
)
static

◆ constraint_list_find_from_target()

static bConstraint* constraint_list_find_from_target ( ListBase constraints,
bConstraintTarget tgt 
)
static

◆ constraint_target_to_mat4()

static void constraint_target_to_mat4 ( Object ob,
const char *  substring,
bConstraintOb cob,
float  mat[4][4],
short  from,
short  to,
short  flag,
float  headtail 
)
static

◆ constraints_init_typeinfo()

static void constraints_init_typeinfo ( void  )
static

◆ contarget_get_lattice_mat()

static void contarget_get_lattice_mat ( Object ob,
const char *  substring,
float  mat[4][4] 
)
static

◆ contarget_get_mesh_mat()

static void contarget_get_mesh_mat ( Object ob,
const char *  substring,
float  mat[4][4] 
)
static

◆ damptrack_do_transform()

static void damptrack_do_transform ( float  matrix[4][4],
const float  tarvec[3],
int  track_axis 
)
static

◆ damptrack_evaluate()

static void damptrack_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ damptrack_flush_tars()

static void damptrack_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 4426 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ damptrack_get_tars()

static int damptrack_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 4411 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ damptrack_id_looper()

static void damptrack_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 4403 of file constraint.c.

References data, and bConstraint::data.

◆ damptrack_new_data()

static void damptrack_new_data ( void cdata)
static

Definition at line 4396 of file constraint.c.

References data, and TRACK_Y.

◆ default_get_tarmat()

static void default_get_tarmat ( struct Depsgraph UNUSEDdepsgraph,
bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
)
static

◆ default_get_tarmat_full_bbone()

static void default_get_tarmat_full_bbone ( struct Depsgraph UNUSEDdepsgraph,
bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
)
static

◆ distlimit_evaluate()

static void distlimit_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ distlimit_flush_tars()

static void distlimit_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 3318 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ distlimit_get_tars()

static int distlimit_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 3303 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ distlimit_id_looper()

static void distlimit_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 3295 of file constraint.c.

References data, and bConstraint::data.

◆ distlimit_new_data()

static void distlimit_new_data ( void cdata)
static

Definition at line 3288 of file constraint.c.

References data.

◆ expand_constraint_cb()

static void expand_constraint_cb ( bConstraint UNUSEDcon,
ID **  idpoin,
bool   UNUSEDis_reference,
void userdata 
)
static

Definition at line 6587 of file constraint.c.

References BLO_expand.

Referenced by BKE_constraint_blend_read_expand().

◆ followpath_evaluate()

static void followpath_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ followpath_flush_tars()

static void followpath_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 1452 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGETNS_FLUSH_TARS.

◆ followpath_get_tarmat()

static void followpath_get_tarmat ( struct Depsgraph UNUSEDdepsgraph,
bConstraint con,
bConstraintOb UNUSEDcob,
bConstraintTarget ct,
float   UNUSEDctime 
)
static

◆ followpath_get_tars()

static int followpath_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 1437 of file constraint.c.

References data, bConstraint::data, and SINGLETARGETNS_GET_TARS.

◆ followpath_id_looper()

static void followpath_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 1429 of file constraint.c.

References data, and bConstraint::data.

◆ followpath_new_data()

static void followpath_new_data ( void cdata)
static

Definition at line 1419 of file constraint.c.

References data, TRACK_Y, and UP_Z.

◆ followtrack_camera_object_get()

static Object* followtrack_camera_object_get ( bConstraint con,
bConstraintOb cob 
)
static

Definition at line 4822 of file constraint.c.

References Scene::camera, data, bConstraint::data, NULL, bConstraintOb::scene, and scene.

Referenced by followtrack_context_init().

◆ followtrack_context_init()

static bool followtrack_context_init ( FollowTrackContext context,
bConstraint con,
bConstraintOb cob 
)
static

◆ followtrack_distance_from_viewplane_get()

static float followtrack_distance_from_viewplane_get ( FollowTrackContext context,
bConstraintOb cob 
)
static

◆ followtrack_evaluate()

static void followtrack_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
)
static

◆ followtrack_evaluate_using_2d_position()

static void followtrack_evaluate_using_2d_position ( FollowTrackContext context,
bConstraintOb cob 
)
static

◆ followtrack_evaluate_using_3d_position()

static void followtrack_evaluate_using_3d_position ( FollowTrackContext context,
bConstraintOb cob 
)
static

◆ followtrack_evaluate_using_3d_position_camera()

static void followtrack_evaluate_using_3d_position_camera ( FollowTrackContext context,
bConstraintOb cob 
)
static

◆ followtrack_evaluate_using_3d_position_object()

static void followtrack_evaluate_using_3d_position_object ( FollowTrackContext context,
bConstraintOb cob 
)
static

◆ followtrack_fit_frame()

static void followtrack_fit_frame ( FollowTrackContext context,
const int  clip_width,
const int  clip_height,
float  marker_position[2] 
)
static

◆ followtrack_id_looper()

static void followtrack_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 4789 of file constraint.c.

References data, and bConstraint::data.

◆ followtrack_new_data()

static void followtrack_new_data ( void cdata)
static

Definition at line 4781 of file constraint.c.

References data, FOLLOWTRACK_ACTIVECLIP, and NULL.

◆ followtrack_project_to_depth_object_if_needed()

static void followtrack_project_to_depth_object_if_needed ( FollowTrackContext context,
bConstraintOb cob 
)
static

◆ followtrack_tracking_clip_get()

static MovieClip* followtrack_tracking_clip_get ( bConstraint con,
bConstraintOb cob 
)
static

◆ followtrack_tracking_object_get()

static MovieTrackingObject* followtrack_tracking_object_get ( bConstraint con,
bConstraintOb cob 
)
static

◆ followtrack_undistort_if_needed()

static void followtrack_undistort_if_needed ( FollowTrackContext context,
const int  clip_width,
const int  clip_height,
float  marker_position[2] 
)
static

◆ is_custom_space_needed()

static bool is_custom_space_needed ( bConstraint con)
static

◆ kinematic_flush_tars()

static void kinematic_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 1351 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ kinematic_get_tarmat()

static void kinematic_get_tarmat ( struct Depsgraph UNUSEDdepsgraph,
bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
)
static

◆ kinematic_get_tars()

static int kinematic_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 1335 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ kinematic_id_looper()

static void kinematic_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 1324 of file constraint.c.

References data, and bConstraint::data.

◆ kinematic_new_data()

static void kinematic_new_data ( void cdata)
static

Definition at line 1313 of file constraint.c.

References CONSTRAINT_IK_POS, CONSTRAINT_IK_STRETCH, CONSTRAINT_IK_TIP, and data.

◆ lib_link_constraint_cb()

static void lib_link_constraint_cb ( bConstraint UNUSEDcon,
ID **  idpoin,
bool   UNUSEDis_reference,
void userdata 
)
static

◆ locktrack_evaluate()

static void locktrack_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ locktrack_flush_tars()

static void locktrack_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 3003 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ locktrack_get_tars()

static int locktrack_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 2988 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ locktrack_id_looper()

static void locktrack_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 2980 of file constraint.c.

References data, and bConstraint::data.

◆ locktrack_new_data()

static void locktrack_new_data ( void cdata)
static

Definition at line 2972 of file constraint.c.

References data, LOCK_Z, and TRACK_Y.

◆ loclike_evaluate()

static void loclike_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ loclike_flush_tars()

static void loclike_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 1828 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ loclike_get_tars()

static int loclike_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 1813 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ loclike_id_looper()

static void loclike_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 1805 of file constraint.c.

References data, and bConstraint::data.

◆ loclike_new_data()

static void loclike_new_data ( void cdata)
static

Definition at line 1798 of file constraint.c.

References data, LOCLIKE_X, LOCLIKE_Y, and LOCLIKE_Z.

◆ loclimit_evaluate()

static void loclimit_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
)
static

◆ minmax_evaluate()

static void minmax_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ minmax_flush_tars()

static void minmax_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 3671 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ minmax_get_tars()

static int minmax_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 3656 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ minmax_id_looper()

static void minmax_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 3648 of file constraint.c.

References data, and bConstraint::data.

◆ minmax_new_data()

static void minmax_new_data ( void cdata)
static

Definition at line 3639 of file constraint.c.

References data, and TRACK_Z.

◆ objectsolver_evaluate()

static void objectsolver_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
)
static

◆ objectsolver_id_looper()

static void objectsolver_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 5268 of file constraint.c.

References data, and bConstraint::data.

◆ objectsolver_new_data()

static void objectsolver_new_data ( void cdata)
static

Definition at line 5259 of file constraint.c.

References data, NULL, OBJECTSOLVER_ACTIVECLIP, and unit_m4().

◆ pivotcon_evaluate()

static void pivotcon_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ pivotcon_flush_tars()

static void pivotcon_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 4679 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ pivotcon_get_tars()

static int pivotcon_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 4664 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ pivotcon_id_looper()

static void pivotcon_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 4656 of file constraint.c.

References data, and bConstraint::data.

◆ pycon_copy()

static void pycon_copy ( bConstraint con,
bConstraint srccon 
)
static

◆ pycon_evaluate()

static void pycon_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ pycon_free()

static void pycon_free ( bConstraint con)
static

Definition at line 2377 of file constraint.c.

References BLI_freelistN(), data, bConstraint::data, and IDP_FreeProperty().

◆ pycon_get_tarmat()

static void pycon_get_tarmat ( struct Depsgraph UNUSEDdepsgraph,
bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
)
static

◆ pycon_get_tars()

static int pycon_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 2406 of file constraint.c.

References data, bConstraint::data, ListBase::first, and ListBase::last.

◆ pycon_id_looper()

static void pycon_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 2420 of file constraint.c.

References data, bConstraint::data, LISTBASE_FOREACH, and bConstraintTarget::tar.

◆ pycon_new_data()

static void pycon_new_data ( void cdata)
static

Definition at line 2397 of file constraint.c.

References data, IDP_GROUP, and MEM_callocN.

◆ rotlike_evaluate()

static void rotlike_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ rotlike_flush_tars()

static void rotlike_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 1925 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ rotlike_get_tars()

static int rotlike_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 1910 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ rotlike_id_looper()

static void rotlike_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 1902 of file constraint.c.

References data, and bConstraint::data.

◆ rotlike_new_data()

static void rotlike_new_data ( void cdata)
static

Definition at line 1895 of file constraint.c.

References data, ROTLIKE_X, ROTLIKE_Y, and ROTLIKE_Z.

◆ rotlimit_evaluate()

static void rotlimit_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
)
static

◆ samevolume_evaluate()

static void samevolume_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
)
static

◆ samevolume_new_data()

static void samevolume_new_data ( void cdata)
static

Definition at line 2308 of file constraint.c.

References data, and SAMEVOL_Y.

◆ shrinkwrap_evaluate()

static void shrinkwrap_evaluate ( bConstraint UNUSEDcon,
bConstraintOb cob,
ListBase targets 
)
static

◆ shrinkwrap_flush_tars()

static void shrinkwrap_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 4195 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGETNS_FLUSH_TARS.

◆ shrinkwrap_get_tarmat()

static void shrinkwrap_get_tarmat ( struct Depsgraph UNUSEDdepsgraph,
bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
)
static

Definition at line 4205 of file constraint.c.

References BKE_constraint_mat_convertspace(), BKE_object_get_evaluated_mesh(), BKE_shrinkwrap_compute_smooth_normal(), BKE_shrinkwrap_find_nearest_surface(), BKE_shrinkwrap_free_tree(), BKE_shrinkwrap_init_tree(), BKE_shrinkwrap_project_normal(), BKE_shrinkwrap_snap_point_to_surface(), BLI_space_transform_apply(), BLI_space_transform_from_matrices(), BLI_space_transform_invert(), BLI_space_transform_invert_normal(), BVH_RAYCAST_DIST_MAX, BVHTreeNearest::co, BVHTreeRayHit::co, CON_SHRINKWRAP_PROJECT_CULL_MASK, CON_SHRINKWRAP_PROJECT_INVERT_CULL, CON_SHRINKWRAP_PROJECT_OPPOSITE, CON_SHRINKWRAP_TRACK_NORMAL, CONSTRAINT_SPACE_LOCAL, copy_m4_m4(), copy_v3_v3(), damptrack_do_transform(), bConstraint::data, BVHTreeRayHit::dist, bShrinkwrapConstraint::dist, BVHTreeNearest::dist_sq, bShrinkwrapConstraint::flag, if(), BVHTreeNearest::index, BVHTreeRayHit::index, interp_v3_v3v3(), invert_m4(), len_v3v3(), bConstraintOb::matrix, bConstraintTarget::matrix, MOD_SHRINKWRAP_NEAREST_SURFACE, MOD_SHRINKWRAP_NEAREST_VERTEX, MOD_SHRINKWRAP_PROJECT, MOD_SHRINKWRAP_TARGET_PROJECT, mul_m4_v3(), mul_mat3_m4_v3(), negate_v3_v3(), BVHTreeNearest::no, BVHTreeRayHit::no, normalize_v3(), NULL, bConstraintOb::ob, OB_MESH, OB_NEGX, OB_NEGY, OB_NEGZ, OB_POSX, OB_POSY, OB_POSZ, Object::obmat, bConstraintOb::pchan, bShrinkwrapConstraint::projAxis, bShrinkwrapConstraint::projAxisSpace, bShrinkwrapConstraint::projLimit, bShrinkwrapConstraint::shrinkMode, bShrinkwrapConstraint::shrinkType, bConstraintTarget::tar, bShrinkwrapConstraint::trackAxis, transform(), tree, Object::type, unit_m4(), VALID_CONS_TARGET, and zero_v3().

◆ shrinkwrap_get_tars()

static int shrinkwrap_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 4181 of file constraint.c.

References data, bConstraint::data, and SINGLETARGETNS_GET_TARS.

◆ shrinkwrap_id_looper()

static void shrinkwrap_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 4165 of file constraint.c.

References data, and bConstraint::data.

◆ shrinkwrap_new_data()

static void shrinkwrap_new_data ( void cdata)
static

Definition at line 4173 of file constraint.c.

References CONSTRAINT_SPACE_LOCAL, data, and OB_POSZ.

◆ sizelike_evaluate()

static void sizelike_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ sizelike_flush_tars()

static void sizelike_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 2103 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ sizelike_get_tars()

static int sizelike_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 2088 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ sizelike_id_looper()

static void sizelike_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 2080 of file constraint.c.

References data, and bConstraint::data.

◆ sizelike_new_data()

static void sizelike_new_data ( void cdata)
static

Definition at line 2072 of file constraint.c.

References data, SIZELIKE_MULTIPLY, SIZELIKE_X, SIZELIKE_Y, and SIZELIKE_Z.

◆ sizelimit_evaluate()

static void sizelimit_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
)
static

◆ splineik_copy()

static void splineik_copy ( bConstraint con,
bConstraint srccon 
)
static

Definition at line 4569 of file constraint.c.

References bConstraint::data, MEM_dupallocN, bSplineIKConstraint::points, and src.

◆ splineik_flush_tars()

static void splineik_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 4614 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGETNS_FLUSH_TARS.

◆ splineik_free()

static void splineik_free ( bConstraint con)
static

Definition at line 4561 of file constraint.c.

References data, bConstraint::data, and MEM_SAFE_FREE.

◆ splineik_get_tarmat()

static void splineik_get_tarmat ( struct Depsgraph UNUSEDdepsgraph,
bConstraint UNUSEDcon,
bConstraintOb UNUSEDcob,
bConstraintTarget ct,
float   UNUSEDctime 
)
static

Definition at line 4625 of file constraint.c.

References bConstraintTarget::matrix, and unit_m4().

◆ splineik_get_tars()

static int splineik_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 4599 of file constraint.c.

References data, bConstraint::data, and SINGLETARGETNS_GET_TARS.

◆ splineik_id_looper()

static void splineik_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 4591 of file constraint.c.

References data, and bConstraint::data.

◆ splineik_new_data()

static void splineik_new_data ( void cdata)
static

◆ stretchto_evaluate()

static void stretchto_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ stretchto_flush_tars()

static void stretchto_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 3466 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ stretchto_get_tars()

static int stretchto_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 3451 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ stretchto_id_looper()

static void stretchto_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 3443 of file constraint.c.

References data, and bConstraint::data.

◆ stretchto_new_data()

static void stretchto_new_data ( void cdata)
static

Definition at line 3431 of file constraint.c.

References data, and SWING_Y.

◆ trackto_evaluate()

static void trackto_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ trackto_flush_tars()

static void trackto_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 1159 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ trackto_get_tars()

static int trackto_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 1144 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ trackto_id_looper()

static void trackto_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 1136 of file constraint.c.

References data, and bConstraint::data.

◆ trackto_new_data()

static void trackto_new_data ( void cdata)
static

Definition at line 1128 of file constraint.c.

References data, TRACK_nZ, and UP_Y.

◆ transform_evaluate()

static void transform_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ transform_flush_tars()

static void transform_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 3993 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ transform_get_tars()

static int transform_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 3978 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ transform_id_looper()

static void transform_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 3970 of file constraint.c.

References data, and bConstraint::data.

◆ transform_new_data()

static void transform_new_data ( void cdata)
static

Definition at line 3956 of file constraint.c.

References data.

◆ transformcache_copy()

static void transformcache_copy ( bConstraint con,
bConstraint srccon 
)
static

◆ transformcache_evaluate()

static void transformcache_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ transformcache_free()

static void transformcache_free ( bConstraint con)
static

Definition at line 5410 of file constraint.c.

References BKE_cachefile_reader_free(), data, and bConstraint::data.

◆ transformcache_id_looper()

static void transformcache_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 5347 of file constraint.c.

References data, and bConstraint::data.

◆ transformcache_new_data()

static void transformcache_new_data ( void cdata)
static

Definition at line 5420 of file constraint.c.

References data, and NULL.

◆ translike_evaluate()

static void translike_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
)
static

◆ translike_flush_tars()

static void translike_flush_tars ( bConstraint con,
ListBase list,
bool  no_copy 
)
static

Definition at line 2225 of file constraint.c.

References data, bConstraint::data, ListBase::first, and SINGLETARGET_FLUSH_TARS.

◆ translike_get_tars()

static int translike_get_tars ( bConstraint con,
ListBase list 
)
static

Definition at line 2210 of file constraint.c.

References data, bConstraint::data, and SINGLETARGET_GET_TARS.

◆ translike_id_looper()

static void translike_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void userdata 
)
static

Definition at line 2202 of file constraint.c.

References data, and bConstraint::data.

◆ vectomat()

static void vectomat ( const float  vec[3],
const float  target_up[3],
short  axis,
short  upflag,
short  flags,
float  m[3][3] 
)
static

Variable Documentation

◆ constraintsTypeInfo

bConstraintTypeInfo* constraintsTypeInfo[NUM_CONSTRAINT_TYPES]
static

Definition at line 5448 of file constraint.c.

Referenced by BKE_constraint_typeinfo_from_type(), and constraints_init_typeinfo().

◆ CTI_ACTION

bConstraintTypeInfo CTI_ACTION
static
Initial value:
= {
N_("Action"),
"bActionConstraint",
NULL,
NULL,
}
struct bActionConstraint bActionConstraint
@ CONSTRAINT_TYPE_ACTION
static void actcon_get_tarmat(struct Depsgraph *depsgraph, bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
Definition: constraint.c:2804
static void actcon_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:2793
static void actcon_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:2767
static void actcon_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:2915
static int actcon_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:2778
static void actcon_new_data(void *cdata)
Definition: constraint.c:2756
#define N_(msgid)

Definition at line 2955 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_ARMATURE

bConstraintTypeInfo CTI_ARMATURE
static
Initial value:
= {
N_("Armature"),
"bArmatureConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_ARMATURE
struct bArmatureConstraint bArmatureConstraint
static void armdef_get_tarmat(struct Depsgraph *UNUSED(depsgraph), bConstraint *UNUSED(con), bConstraintOb *UNUSED(cob), bConstraintTarget *ct, float UNUSED(ctime))
Definition: constraint.c:2549
static void armdef_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:2678
static void armdef_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:2538
static void armdef_copy(bConstraint *con, bConstraint *srccon)
Definition: constraint.c:2517
static int armdef_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:2525
static void armdef_free(bConstraint *con)
Definition: constraint.c:2509

Definition at line 2739 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_CAMERASOLVER

bConstraintTypeInfo CTI_CAMERASOLVER
static
Initial value:
= {
N_("Camera Solver"),
"bCameraSolverConstraint",
NULL,
NULL,
NULL,
NULL,
NULL,
}
@ CONSTRAINT_TYPE_CAMERASOLVER
struct bCameraSolverConstraint bCameraSolverConstraint
static void camerasolver_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
Definition: constraint.c:5216
static void camerasolver_new_data(void *cdata)
Definition: constraint.c:5201
static void camerasolver_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:5209

Definition at line 5242 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_CHILDOF

bConstraintTypeInfo CTI_CHILDOF
static
Initial value:
= {
N_("Child Of"),
"bChildOfConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_CHILDOF
struct bChildOfConstraint bChildOfConstraint
static void childof_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:1002
static void childof_new_data(void *cdata)
Definition: constraint.c:958
static int childof_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:976
static void childof_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:991
static void default_get_tarmat(struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
Definition: constraint.c:808
static void childof_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:968

Definition at line 1111 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_CLAMPTO

bConstraintTypeInfo CTI_CLAMPTO
static
Initial value:
= {
N_("Clamp To"),
"bClampToConstraint",
NULL,
NULL,
NULL,
}
@ CONSTRAINT_TYPE_CLAMPTO
struct bClampToConstraint bClampToConstraint
static void clampto_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:3818
static void clampto_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:3793
static void clampto_get_tarmat(struct Depsgraph *UNUSED(depsgraph), bConstraint *UNUSED(con), bConstraintOb *UNUSED(cob), bConstraintTarget *ct, float UNUSED(ctime))
Definition: constraint.c:3804
static int clampto_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:3778
static void clampto_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:3770

Definition at line 3939 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_DAMPTRACK

bConstraintTypeInfo CTI_DAMPTRACK
static
Initial value:
= {
N_("Damped Track"),
"bDampTrackConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_DAMPTRACK
struct bDampTrackConstraint bDampTrackConstraint
static int damptrack_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:4411
static void damptrack_new_data(void *cdata)
Definition: constraint.c:4396
static void damptrack_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:4426
static void damptrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:4447
static void damptrack_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:4403

Definition at line 4544 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_DISTLIMIT

bConstraintTypeInfo CTI_DISTLIMIT
static
Initial value:
= {
N_("Limit Distance"),
"bDistLimitConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_DISTLIMIT
struct bDistLimitConstraint bDistLimitConstraint
static void distlimit_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:3329
static void distlimit_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:3295
static int distlimit_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:3303
static void distlimit_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:3318
static void distlimit_new_data(void *cdata)
Definition: constraint.c:3288

Definition at line 3414 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_FOLLOWPATH

bConstraintTypeInfo CTI_FOLLOWPATH
static
Initial value:
= {
N_("Follow Path"),
"bFollowPathConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_FOLLOWPATH
struct bFollowPathConstraint bFollowPathConstraint
static int followpath_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:1437
static void followpath_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:1540
static void followpath_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:1452
static void followpath_new_data(void *cdata)
Definition: constraint.c:1419
static void followpath_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:1429
static void followpath_get_tarmat(struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *UNUSED(cob), bConstraintTarget *ct, float UNUSED(ctime))
Definition: constraint.c:1463

Definition at line 1580 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_FOLLOWTRACK

bConstraintTypeInfo CTI_FOLLOWTRACK
static
Initial value:
= {
N_("Follow Track"),
"bFollowTrackConstraint",
NULL,
NULL,
NULL,
NULL,
NULL,
}
struct bFollowTrackConstraint bFollowTrackConstraint
@ CONSTRAINT_TYPE_FOLLOWTRACK
static void followtrack_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:4789
static void followtrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
Definition: constraint.c:5168
static void followtrack_new_data(void *cdata)
Definition: constraint.c:4781

Definition at line 5184 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_INIT

short CTI_INIT = 1
static

Definition at line 5449 of file constraint.c.

Referenced by BKE_constraint_typeinfo_from_type().

◆ CTI_KINEMATIC

bConstraintTypeInfo CTI_KINEMATIC
static
Initial value:
= {
N_("IK"),
"bKinematicConstraint",
NULL,
NULL,
NULL,
}
@ CONSTRAINT_TYPE_KINEMATIC
struct bKinematicConstraint bKinematicConstraint
static int kinematic_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:1335
static void kinematic_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:1324
static void kinematic_get_tarmat(struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
Definition: constraint.c:1363
static void kinematic_new_data(void *cdata)
Definition: constraint.c:1313
static void kinematic_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:1351

Definition at line 1402 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_LOCKTRACK

bConstraintTypeInfo CTI_LOCKTRACK
static
Initial value:
= {
N_("Locked Track"),
"bLockTrackConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_LOCKTRACK
struct bLockTrackConstraint bLockTrackConstraint
static void locktrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:3014
static void locktrack_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:3003
static void locktrack_new_data(void *cdata)
Definition: constraint.c:2972
static int locktrack_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:2988
static void locktrack_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:2980

Definition at line 3271 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_LOCLIKE

bConstraintTypeInfo CTI_LOCLIKE
static
Initial value:
= {
N_("Copy Location"),
"bLocateLikeConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_LOCLIKE
struct bLocateLikeConstraint bLocateLikeConstraint
static void loclike_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:1828
static int loclike_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:1813
static void loclike_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:1805
static void loclike_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:1839
static void loclike_new_data(void *cdata)
Definition: constraint.c:1798

Definition at line 1878 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_LOCLIMIT

bConstraintTypeInfo CTI_LOCLIMIT
static
Initial value:
= {
N_("Limit Location"),
"bLocLimitConstraint",
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
}
@ CONSTRAINT_TYPE_LOCLIMIT
struct bLocLimitConstraint bLocLimitConstraint
static void loclimit_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
Definition: constraint.c:1597

Definition at line 1633 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_MINMAX

bConstraintTypeInfo CTI_MINMAX
static
Initial value:
= {
N_("Floor"),
"bMinMaxConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_MINMAX
struct bMinMaxConstraint bMinMaxConstraint
static void minmax_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:3682
static void minmax_new_data(void *cdata)
Definition: constraint.c:3639
static void minmax_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:3648
static int minmax_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:3656
static void minmax_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:3671

Definition at line 3753 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_OBJECTSOLVER

bConstraintTypeInfo CTI_OBJECTSOLVER
static
Initial value:
= {
N_("Object Solver"),
"bObjectSolverConstraint",
NULL,
NULL,
NULL,
NULL,
NULL,
}
@ CONSTRAINT_TYPE_OBJECTSOLVER
struct bObjectSolverConstraint bObjectSolverConstraint
static void objectsolver_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:5268
static void objectsolver_new_data(void *cdata)
Definition: constraint.c:5259
static void objectsolver_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
Definition: constraint.c:5276

Definition at line 5330 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_PIVOT

bConstraintTypeInfo CTI_PIVOT
static
Initial value:
= {
sizeof(bPivotConstraint),
N_("Pivot"),
"bPivotConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_PIVOT
struct bPivotConstraint bPivotConstraint
static void pivotcon_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:4690
static int pivotcon_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:4664
static void pivotcon_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:4679
static void pivotcon_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:4656

Definition at line 4763 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_PYTHON

bConstraintTypeInfo CTI_PYTHON
static
Initial value:
= {
N_("Script"),
"bPythonConstraint",
NULL,
}
@ CONSTRAINT_TYPE_PYTHON
struct bPythonConstraint bPythonConstraint
static void pycon_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:2420
static int pycon_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:2406
static void pycon_get_tarmat(struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
Definition: constraint.c:2434
static void pycon_new_data(void *cdata)
Definition: constraint.c:2397
static void pycon_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:2474
static void pycon_copy(bConstraint *con, bConstraint *srccon)
Definition: constraint.c:2388
static void pycon_free(bConstraint *con)
Definition: constraint.c:2377

Definition at line 2492 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_ROTLIKE

bConstraintTypeInfo CTI_ROTLIKE
static
Initial value:
= {
N_("Copy Rotation"),
"bRotateLikeConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_ROTLIKE
struct bRotateLikeConstraint bRotateLikeConstraint
static void rotlike_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:1936
static void rotlike_new_data(void *cdata)
Definition: constraint.c:1895
static void rotlike_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:1925
static int rotlike_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:1910
static void rotlike_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:1902

Definition at line 2055 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_ROTLIMIT

bConstraintTypeInfo CTI_ROTLIMIT
static
Initial value:
= {
N_("Limit Rotation"),
"bRotLimitConstraint",
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
}
@ CONSTRAINT_TYPE_ROTLIMIT
struct bRotLimitConstraint bRotLimitConstraint
static void rotlimit_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
Definition: constraint.c:1650

Definition at line 1714 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_SAMEVOL

bConstraintTypeInfo CTI_SAMEVOL
static
Initial value:
= {
N_("Maintain Volume"),
"bSameVolumeConstraint",
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
}
@ CONSTRAINT_TYPE_SAMEVOL
struct bSameVolumeConstraint bSameVolumeConstraint
static void samevolume_new_data(void *cdata)
Definition: constraint.c:2308
static void samevolume_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
Definition: constraint.c:2316

Definition at line 2360 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_SHRINKWRAP

bConstraintTypeInfo CTI_SHRINKWRAP
static
Initial value:
= {
N_("Shrinkwrap"),
"bShrinkwrapConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_SHRINKWRAP
struct bShrinkwrapConstraint bShrinkwrapConstraint
static void shrinkwrap_evaluate(bConstraint *UNUSED(con), bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:4369
static void shrinkwrap_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:4165
static void shrinkwrap_get_tarmat(struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
Definition: constraint.c:4205
static void shrinkwrap_new_data(void *cdata)
Definition: constraint.c:4173
static void shrinkwrap_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:4195
static int shrinkwrap_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:4181

Definition at line 4379 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_SIZELIKE

bConstraintTypeInfo CTI_SIZELIKE
static
Initial value:
= {
N_("Copy Scale"),
"bSizeLikeConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_SIZELIKE
struct bSizeLikeConstraint bSizeLikeConstraint
static void sizelike_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:2080
static void sizelike_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:2103
static void sizelike_new_data(void *cdata)
Definition: constraint.c:2072
static int sizelike_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:2088
static void sizelike_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:2114

Definition at line 2185 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_SIZELIMIT

bConstraintTypeInfo CTI_SIZELIMIT
static
Initial value:
= {
N_("Limit Scale"),
"bSizeLimitConstraint",
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
}
@ CONSTRAINT_TYPE_SIZELIMIT
struct bSizeLimitConstraint bSizeLimitConstraint
static void sizelimit_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets))
Definition: constraint.c:1731

Definition at line 1781 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_SPLINEIK

bConstraintTypeInfo CTI_SPLINEIK
static
Initial value:
= {
N_("Spline IK"),
"bSplineIKConstraint",
NULL,
}
@ CONSTRAINT_TYPE_SPLINEIK
struct bSplineIKConstraint bSplineIKConstraint
static void splineik_get_tarmat(struct Depsgraph *UNUSED(depsgraph), bConstraint *UNUSED(con), bConstraintOb *UNUSED(cob), bConstraintTarget *ct, float UNUSED(ctime))
Definition: constraint.c:4625
static void splineik_copy(bConstraint *con, bConstraint *srccon)
Definition: constraint.c:4569
static int splineik_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:4599
static void splineik_new_data(void *cdata)
Definition: constraint.c:4578
static void splineik_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:4614
static void splineik_free(bConstraint *con)
Definition: constraint.c:4561
static void splineik_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:4591

Definition at line 4639 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_STRETCHTO

bConstraintTypeInfo CTI_STRETCHTO
static
Initial value:
= {
N_("Stretch To"),
"bStretchToConstraint",
NULL,
NULL,
}
struct bStretchToConstraint bStretchToConstraint
@ CONSTRAINT_TYPE_STRETCHTO
static void stretchto_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:3443
static void stretchto_new_data(void *cdata)
Definition: constraint.c:3431
static int stretchto_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:3451
static void stretchto_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:3477
static void stretchto_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:3466

Definition at line 3622 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_TRACKTO

bConstraintTypeInfo CTI_TRACKTO
static
Initial value:
= {
N_("Track To"),
"bTrackToConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_TRACKTO
struct bTrackToConstraint bTrackToConstraint
static void trackto_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:1136
static void trackto_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:1159
static void trackto_new_data(void *cdata)
Definition: constraint.c:1128
static void trackto_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:1261
static int trackto_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:1144

Definition at line 1296 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_TRANSFORM

bConstraintTypeInfo CTI_TRANSFORM
static
Initial value:
= {
N_("Transformation"),
"bTransformConstraint",
NULL,
NULL,
}
@ CONSTRAINT_TYPE_TRANSFORM
struct bTransformConstraint bTransformConstraint
static void transform_new_data(void *cdata)
Definition: constraint.c:3956
static void transform_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:4004
static void transform_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:3993
static int transform_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:3978
static void transform_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:3970

Definition at line 4148 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_TRANSFORM_CACHE

bConstraintTypeInfo CTI_TRANSFORM_CACHE
static
Initial value:
= {
N_("Transform Cache"),
"bTransformCacheConstraint",
NULL,
NULL,
NULL,
}
@ CONSTRAINT_TYPE_TRANSFORM_CACHE
struct bTransformCacheConstraint bTransformCacheConstraint
static void transformcache_new_data(void *cdata)
Definition: constraint.c:5420
static void transformcache_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:5347
static void transformcache_copy(bConstraint *con, bConstraint *srccon)
Definition: constraint.c:5399
static void transformcache_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:5353
static void transformcache_free(bConstraint *con)
Definition: constraint.c:5410

Definition at line 5427 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ CTI_TRANSLIKE

bConstraintTypeInfo CTI_TRANSLIKE
static
Initial value:
= {
N_("Copy Transforms"),
"bTransLikeConstraint",
NULL,
NULL,
NULL,
}
@ CONSTRAINT_TYPE_TRANSLIKE
struct bTransLikeConstraint bTransLikeConstraint
static void translike_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata)
Definition: constraint.c:2202
static int translike_get_tars(bConstraint *con, ListBase *list)
Definition: constraint.c:2210
static void default_get_tarmat_full_bbone(struct Depsgraph *UNUSED(depsgraph), bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
Definition: constraint.c:831
static void translike_flush_tars(bConstraint *con, ListBase *list, bool no_copy)
Definition: constraint.c:2225
static void translike_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets)
Definition: constraint.c:2236

Definition at line 2291 of file constraint.c.

Referenced by constraints_init_typeinfo().

◆ LOG

CLG_LogRef LOG = {"bke.constraint"}
static

Definition at line 94 of file constraint.c.

Referenced by BKE_constraint_typeinfo_from_type().

◆ track_dir_vecs

const float track_dir_vecs[6][3]
static
Initial value:
= {
{+1, 0, 0},
{0, +1, 0},
{0, 0, +1},
{-1, 0, 0},
{0, -1, 0},
{0, 0, -1}
}

Definition at line 4438 of file constraint.c.

Referenced by damptrack_do_transform().