Blender  V2.59
Defines | Functions | Variables
constraint.c File Reference
#include <stdio.h>
#include <stddef.h>
#include <string.h>
#include <math.h>
#include <float.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_editVert.h"
#include "BLI_utildefines.h"
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_action_types.h"
#include "DNA_curve_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_lattice_types.h"
#include "DNA_scene_types.h"
#include "DNA_text_types.h"
#include "BKE_action.h"
#include "BKE_anim.h"
#include "BKE_armature.h"
#include "BKE_blender.h"
#include "BKE_constraint.h"
#include "BKE_displist.h"
#include "BKE_deform.h"
#include "BKE_DerivedMesh.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_object.h"
#include "BKE_ipo.h"
#include "BKE_global.h"
#include "BKE_library.h"
#include "BKE_idprop.h"
#include "BKE_shrinkwrap.h"
#include "BKE_mesh.h"

Go to the source code of this file.

Defines

#define M_PI   3.14159265358979323846
#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, nocopy)
#define SINGLETARGETNS_FLUSH_TARS(con, datatar, ct, list, nocopy)

Functions

void unique_constraint_name (bConstraint *con, ListBase *list)
bConstraintObconstraints_make_evalob (Scene *scene, Object *ob, void *subdata, short datatype)
void constraints_clear_evalob (bConstraintOb *cob)
void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4], short from, short to)
static void contarget_get_mesh_mat (Object *ob, const char *substring, float mat[][4])
static void contarget_get_lattice_mat (Object *ob, const char *substring, float mat[][4])
static void constraint_target_to_mat4 (Object *ob, const char *substring, float mat[][4], short from, short to, float headtail)
static void default_get_tarmat (bConstraint *con, bConstraintOb *UNUSED(cob), bConstraintTarget *ct, float UNUSED(ctime))
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, short nocopy)
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, short nocopy)
static int basis_cross (int n, int m)
static void vectomat (float *vec, float *target_up, short axis, short upflag, short flags, float m[][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, short nocopy)
static void kinematic_get_tarmat (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, short nocopy)
static void followpath_get_tarmat (bConstraint *con, bConstraintOb *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, short nocopy)
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, short nocopy)
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, short nocopy)
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, short nocopy)
static void translike_evaluate (bConstraint *UNUSED(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_relink (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 (bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
static void pycon_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
static void actcon_relink (bConstraint *con)
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, short nocopy)
static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
static void actcon_evaluate (bConstraint *UNUSED(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, short nocopy)
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, short nocopy)
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, short nocopy)
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, short nocopy)
static void minmax_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
static void rbj_new_data (void *cdata)
static void rbj_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
static int rbj_get_tars (bConstraint *con, ListBase *list)
static void rbj_flush_tars (bConstraint *con, ListBase *list, short nocopy)
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, short nocopy)
static void clampto_get_tarmat (bConstraint *UNUSED(con), bConstraintOb *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, short nocopy)
static void transform_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
static void shrinkwrap_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata)
static int shrinkwrap_get_tars (bConstraint *con, ListBase *list)
static void shrinkwrap_flush_tars (bConstraint *con, ListBase *list, short nocopy)
static void shrinkwrap_get_tarmat (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, short nocopy)
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, short nocopy)
static void splineik_get_tarmat (bConstraint *UNUSED(con), bConstraintOb *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, short nocopy)
static void pivotcon_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets)
static void constraints_init_typeinfo (void)
bConstraintTypeInfoget_constraint_typeinfo (int type)
bConstraintTypeInfoconstraint_get_typeinfo (bConstraint *con)
void free_constraint_data (bConstraint *con)
void free_constraints (ListBase *list)
int remove_constraint (ListBase *list, bConstraint *con)
void remove_constraints_type (ListBase *list, short type, short last_only)
static bConstraintadd_new_constraint_internal (const char *name, short type)
static bConstraintadd_new_constraint (Object *ob, bPoseChannel *pchan, const char *name, short type)
bConstraintadd_pose_constraint (Object *ob, bPoseChannel *pchan, const char *name, short type)
bConstraintadd_ob_constraint (Object *ob, const char *name, short type)
void relink_constraints (ListBase *conlist)
void id_loop_constraints (ListBase *conlist, ConstraintIDFunc func, void *userdata)
static void con_extern_cb (bConstraint *UNUSED(con), ID **idpoin, void *UNUSED(userData))
void copy_constraints (ListBase *dst, const ListBase *src, int do_extern)
bConstraintconstraints_findByName (ListBase *list, const char *name)
bConstraintconstraints_get_active (ListBase *list)
void constraints_set_active (ListBase *list, bConstraint *con)
void extract_proxylocal_constraints (ListBase *dst, ListBase *src)
short proxylocked_constraints_owner (Object *ob, bPoseChannel *pchan)
void get_constraint_target_matrix (struct Scene *scene, bConstraint *con, int n, short ownertype, void *ownerdata, float mat[][4], float ctime)
void solve_constraints (ListBase *conlist, bConstraintOb *cob, float ctime)

Variables

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_ACTION
static bConstraintTypeInfo CTI_LOCKTRACK
static bConstraintTypeInfo CTI_DISTLIMIT
static bConstraintTypeInfo CTI_STRETCHTO
static bConstraintTypeInfo CTI_MINMAX
static bConstraintTypeInfo CTI_RIGIDBODYJOINT
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 bConstraintTypeInfoconstraintsTypeInfo [NUM_CONSTRAINT_TYPES]
static short CTI_INIT = 1

Detailed Description

Definition in file constraint.c.


Define Documentation

#define M_PI   3.14159265358979323846

Definition at line 84 of file constraint.c.

Referenced by actcon_get_tarmat(), add_render_lamp(), LbmFsgrSolver::advanceParticles(), angle_normalized_v2v2(), angle_normalized_v3v3(), angle_quad_v3(), angle_tri_v3(), angle_wrap_rad(), AngleBetween(), ANIM_unit_mapping_get_factor(), applyModifier(), autosmooth(), axis_angle_to_gimbal_axis(), axisProjection(), BKE_text_to_curve(), blend(), BME_bevel_initialize(), brush_drawcursor(), calc_bevel_sin_cos(), calc_radial_symmetry_feather(), check_zone(), compatible_eul(), ComputeAttenuatedSunlight(), MeanValueMeshCoords::computeWeights(), costAngle(), KX_Dome::CreateMeshDome180(), KX_Dome::CreateMeshDome250(), TransformReader::dae_rotate_to_mat4(), dblur(), ntlMatrix4x4< Scalar >::decompose(), defocus_blur(), detectArcRetargetMode(), dm_calc_normal(), do_chroma_key(), do_kink(), do_radial_symmetry(), do_sky_tex(), do_transform(), do_version_constraints_radians_degrees_250(), do_versions(), do_view3d_region_buttons(), draw_forcefield(), draw_manipulator_rotate(), draw_pose_dofs(), draw_rotation_guide(), draw_spot_cone(), draw_uvs_stretch(), drawHelpline(), drawlamp(), dvar_eval_rotDiff(), ED_rollBoneToVector(), ED_view3d_lock(), ED_view3d_ob_clip_range_get(), ED_view3d_viewplane_get(), effector_falloff(), EM_make_hq_normals(), envmap_transmatrix(), fcm_fn_generator_evaluate(), fdrawXORcirc(), fdrawXORellipse(), ff_quad_form_factor(), fglow(), FHT(), fix_bonelist_roll(), fluid_init_all_channels(), ParticleObject::getMass(), GetSkyXYZRadiance(), ParticleTracer::getTriangles(), gpu_lamp_from_blender(), graphkeys_euler_filter_exec(), icu_to_fcurves(), imp2radangle(), initBoneRoll(), initData(), initRotation(), ntlMatrix4x4< Scalar >::initRotationX(), ntlMatrix4x4< Scalar >::initRotationY(), ntlMatrix4x4< Scalar >::initRotationZ(), InitSunSky(), initTilt(), ControlParticles::initTimeArray(), initTrackball(), initWarp(), make_bevel_list_3D_minimum_twist(), make_prim(), makebevelcurve(), makeBokeh(), map_to_sphere(), map_to_tube(), node_composit_exec_rotate(), node_update_hidden(), object_camera_matrix(), occ_quad_form_factor(), CamerasExporter::operator()(), p_abf_compute_gradient(), p_abf_matrix_invert(), p_abf_setup_system(), p_chart_abf_solve(), p_chart_minimum_area_angle(), p_chart_stretch_minimize(), p_edge_boundary_angle(), p_triangle_angles(), p_vec_angle(), paint_draw_alpha_overlay(), paint_draw_cursor(), partial_donut(), particle_billboard(), postInputWarp(), project_from_camera(), psys_get_birth_coordinates(), psys_make_billboard(), psys_render_projected_area(), psys_thread_create_path(), QMC_sampleDisc(), QMC_sampleHemi(), QMC_samplePhong(), radial_control_modal(), radial_control_paint_cursor(), radial_control_paint_tex(), Rd_rsquare(), render_new_particle_system(), ntlWorld::renderScene(), RIG_printArc(), rna_def_brush_texture_slot(), RNA_def_camera(), rna_def_constraint_kinematic(), rna_def_constraint_rigid_body_joint(), rna_def_edit_bone(), rna_def_modifier_screw(), rna_def_pose_channel(), rna_def_spot_lamp(), rotate(), RotationBetween(), RVBlurBitmap2_byte(), RVBlurBitmap2_float(), saacos(), saacos_d(), saacosf(), saasin(), saasinf(), screen_aligned(), sculpt_update_cache_variants(), select_linked_flat_faces(), select_sharp_edges_exec(), set_boid_values(), set_phong_threshold(), sinc(), sk_drawEdge(), sk_drawNormal(), smooth_view(), speedvector_project(), spin_mesh(), spin_nurb(), split_sharp_edges(), streaks(), tag_and_count_extra_edges(), test_manipulator_axis(), tex_saw(), tex_tri(), transform_evaluate(), TRANSFORM_OT_rotate(), TRANSFORM_OT_tilt(), ui_draw_but_HSVCIRCLE(), ui_draw_but_NORMAL(), ui_hsv_cursor(), ui_hsvcircle_vals_from_pos(), uv_image_outset(), uv_map_rotation_matrix(), v3d_posearmature_buts(), vectorscope_draw_target(), viewnumpad_exec(), vieworbit_exec(), viewrotate_apply(), WardIso_Spec(), wm_gesture_draw_circle(), wm_gesture_evaluate(), and DocumentImporter::writeCamera().

#define SINGLETARGET_FLUSH_TARS (   con,
  datatar,
  datasubtarget,
  ct,
  list,
  nocopy 
)
Value:
{ \
                if (ct) { \
                        bConstraintTarget *ctn = ct->next; \
                        if (nocopy == 0) { \
                                datatar= ct->tar; \
                                BLI_strncpy(datasubtarget, ct->subtarget, sizeof(datasubtarget)); \
                                con->tarspace= (char)ct->space; \
                        } \
			 \
			BLI_freelinkN(list, ct); \
                        ct= ctn; \
                } \
        }

Definition at line 747 of file constraint.c.

Referenced by actcon_flush_tars(), childof_flush_tars(), damptrack_flush_tars(), distlimit_flush_tars(), kinematic_flush_tars(), locktrack_flush_tars(), loclike_flush_tars(), minmax_flush_tars(), pivotcon_flush_tars(), rotlike_flush_tars(), sizelike_flush_tars(), stretchto_flush_tars(), trackto_flush_tars(), transform_flush_tars(), and translike_flush_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= get_pose_channel(ct->tar->pose, ct->subtarget); \
                                ct->type = CONSTRAINT_OBTYPE_BONE; \
                                ct->rotOrder= (pchan) ? (pchan->rotmode) : EULER_ORDER_DEFAULT; \
                        }\
                        else if (ELEM(ct->tar->type, OB_MESH, OB_LATTICE) && (ct->subtarget[0])) { \
                                ct->type = CONSTRAINT_OBTYPE_VERT; \
                                ct->rotOrder = EULER_ORDER_DEFAULT; \
                        } \
                        else {\
                                ct->type = CONSTRAINT_OBTYPE_OBJECT; \
                                ct->rotOrder= ct->tar->rotmode; \
                        } \
                } \
		 \
		BLI_addtail(list, ct); \
        }

Definition at line 694 of file constraint.c.

Referenced by actcon_get_tars(), childof_get_tars(), damptrack_get_tars(), distlimit_get_tars(), kinematic_get_tars(), locktrack_get_tars(), loclike_get_tars(), minmax_get_tars(), pivotcon_get_tars(), rotlike_get_tars(), sizelike_get_tars(), stretchto_get_tars(), trackto_get_tars(), transform_get_tars(), and translike_get_tars().

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

Definition at line 768 of file constraint.c.

Referenced by clampto_flush_tars(), followpath_flush_tars(), rbj_flush_tars(), shrinkwrap_flush_tars(), and splineik_flush_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) ct->type = CONSTRAINT_OBTYPE_OBJECT; \
                 \
                BLI_addtail(list, ct); \
        }

Definition at line 728 of file constraint.c.

Referenced by clampto_get_tars(), followpath_get_tars(), rbj_get_tars(), shrinkwrap_get_tars(), and splineik_get_tars().


Function Documentation

static void actcon_evaluate ( bConstraint UNUSEDcon,
bConstraintOb cob,
ListBase targets 
) [static]
static void actcon_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static void actcon_get_tarmat ( bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
) [static]
static int actcon_get_tars ( bConstraint con,
ListBase list 
) [static]
static void actcon_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 2111 of file constraint.c.

References bActionConstraint::act, bConstraint::data, and bActionConstraint::tar.

static void actcon_new_data ( void *  cdata) [static]

Definition at line 2103 of file constraint.c.

References bActionConstraint::type.

static void actcon_relink ( bConstraint con) [static]

Definition at line 2097 of file constraint.c.

References bActionConstraint::act, bConstraint::data, and ID_NEW.

static bConstraint* add_new_constraint ( Object ob,
bPoseChannel pchan,
const char *  name,
short  type 
) [static]
static bConstraint* add_new_constraint_internal ( const char *  name,
short  type 
) [static]
bConstraint* add_ob_constraint ( Object ob,
const char *  name,
short  type 
) [read]
bConstraint* add_pose_constraint ( Object ob,
bPoseChannel pchan,
const char *  name,
short  type 
) [read]

Definition at line 4168 of file constraint.c.

References add_new_constraint(), and NULL.

Referenced by constraint_add_exec(), and pose_grab_with_ik_add().

static int basis_cross ( int  n,
int  m 
) [static]

Definition at line 965 of file constraint.c.

Referenced by vectomat().

static void childof_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void childof_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int childof_get_tars ( bConstraint con,
ListBase list 
) [static]
static void childof_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 794 of file constraint.c.

References bConstraint::data, and bChildOfConstraint::tar.

static void childof_new_data ( void *  cdata) [static]
static void clampto_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void clampto_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static void clampto_get_tarmat ( bConstraint UNUSEDcon,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
) [static]
static int clampto_get_tars ( bConstraint con,
ListBase list 
) [static]
static void clampto_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 3083 of file constraint.c.

References bConstraint::data, and bClampToConstraint::tar.

static void con_extern_cb ( bConstraint UNUSEDcon,
ID **  idpoin,
void *  UNUSEDuserData 
) [static]

Definition at line 4232 of file constraint.c.

References id_lib_extern(), and ID::lib.

Referenced by copy_constraints().

bConstraintTypeInfo* constraint_get_typeinfo ( bConstraint con)
void constraint_mat_convertspace ( Object ob,
bPoseChannel pchan,
float  mat[][4],
short  from,
short  to 
)
static void constraint_target_to_mat4 ( Object ob,
const char *  substring,
float  mat[][4],
short  from,
short  to,
float  headtail 
) [static]
void constraints_clear_evalob ( bConstraintOb cob)
bConstraint* constraints_findByName ( ListBase list,
const char *  name 
) [read]

Definition at line 4270 of file constraint.c.

References BLI_findstring().

Referenced by edit_constraint_property_get().

bConstraint* constraints_get_active ( ListBase list) [read]
static void constraints_init_typeinfo ( void  ) [static]
bConstraintOb* constraints_make_evalob ( Scene scene,
Object ob,
void *  subdata,
short  datatype 
) [read]
void constraints_set_active ( ListBase list,
bConstraint con 
)
static void contarget_get_lattice_mat ( Object ob,
const char *  substring,
float  mat[][4] 
) [static]
static void contarget_get_mesh_mat ( Object ob,
const char *  substring,
float  mat[][4] 
) [static]
void copy_constraints ( ListBase dst,
const ListBase src,
int  do_extern 
)
static void damptrack_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void damptrack_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int damptrack_get_tars ( bConstraint con,
ListBase list 
) [static]
static void damptrack_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 3590 of file constraint.c.

References bConstraint::data, and bDampTrackConstraint::tar.

static void damptrack_new_data ( void *  cdata) [static]

Definition at line 3583 of file constraint.c.

References TRACK_Y, and bDampTrackConstraint::trackflag.

static void default_get_tarmat ( bConstraint con,
bConstraintOb UNUSEDcob,
bConstraintTarget ct,
float   UNUSEDctime 
) [static]
static void distlimit_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void distlimit_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int distlimit_get_tars ( bConstraint con,
ListBase list 
) [static]
static void distlimit_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 2588 of file constraint.c.

References bConstraint::data, and bDistLimitConstraint::tar.

static void distlimit_new_data ( void *  cdata) [static]

Definition at line 2581 of file constraint.c.

References bDistLimitConstraint::dist.

void extract_proxylocal_constraints ( ListBase dst,
ListBase src 
)
static void followpath_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void followpath_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static void followpath_get_tarmat ( bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
) [static]
static int followpath_get_tars ( bConstraint con,
ListBase list 
) [static]
static void followpath_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 1204 of file constraint.c.

References bConstraint::data, and bFollowPathConstraint::tar.

static void followpath_new_data ( void *  cdata) [static]
void free_constraint_data ( bConstraint con)
void free_constraints ( ListBase list)
void get_constraint_target_matrix ( struct Scene scene,
bConstraint con,
int  n,
short  ownertype,
void *  ownerdata,
float  mat[][4],
float  ctime 
)
bConstraintTypeInfo* get_constraint_typeinfo ( int  type)
void id_loop_constraints ( ListBase conlist,
ConstraintIDFunc  func,
void *  userdata 
)
static void kinematic_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static void kinematic_get_tarmat ( bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
) [static]
static int kinematic_get_tars ( bConstraint con,
ListBase list 
) [static]
static void kinematic_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]
static void kinematic_new_data ( void *  cdata) [static]
static void locktrack_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void locktrack_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int locktrack_get_tars ( bConstraint con,
ListBase list 
) [static]
static void locktrack_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 2277 of file constraint.c.

References bConstraint::data, and bLockTrackConstraint::tar.

static void locktrack_new_data ( void *  cdata) [static]
static void loclike_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void loclike_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int loclike_get_tars ( bConstraint con,
ListBase list 
) [static]
static void loclike_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 1545 of file constraint.c.

References bConstraint::data, and bLocateLikeConstraint::tar.

static void loclike_new_data ( void *  cdata) [static]

Definition at line 1538 of file constraint.c.

References bLocateLikeConstraint::flag, LOCLIKE_X, LOCLIKE_Y, and LOCLIKE_Z.

static void loclimit_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
) [static]
static void minmax_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void minmax_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int minmax_get_tars ( bConstraint con,
ListBase list 
) [static]
static void minmax_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 2887 of file constraint.c.

References bConstraint::data, and bMinMaxConstraint::tar.

static void minmax_new_data ( void *  cdata) [static]
static void pivotcon_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void pivotcon_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int pivotcon_get_tars ( bConstraint con,
ListBase list 
) [static]
static void pivotcon_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 3809 of file constraint.c.

References bConstraint::data, and bPivotConstraint::tar.

short proxylocked_constraints_owner ( Object ob,
bPoseChannel pchan 
)
static void pycon_copy ( bConstraint con,
bConstraint srccon 
) [static]
static void pycon_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]

Definition at line 2054 of file constraint.c.

References BPY_pyconstraint_exec(), bConstraint::data, Global::f, G, and G_SCRIPT_AUTOEXEC.

static void pycon_free ( bConstraint con) [static]
static void pycon_get_tarmat ( bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
) [static]
static int pycon_get_tars ( bConstraint con,
ListBase list 
) [static]
static void pycon_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]
static void pycon_new_data ( void *  cdata) [static]

Definition at line 1986 of file constraint.c.

References IDP_GROUP, MEM_callocN(), bPythonConstraint::prop, and IDProperty::type.

static void pycon_relink ( bConstraint con) [static]

Definition at line 1970 of file constraint.c.

References bConstraint::data, ID_NEW, and bPythonConstraint::text.

static void rbj_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int rbj_get_tars ( bConstraint con,
ListBase list 
) [static]
static void rbj_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]
static void rbj_new_data ( void *  cdata) [static]

Definition at line 3022 of file constraint.c.

References bRigidBodyJointConstraint::type.

void relink_constraints ( ListBase conlist)
int remove_constraint ( ListBase list,
bConstraint con 
)
void remove_constraints_type ( ListBase list,
short  type,
short  last_only 
)
static void rotlike_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void rotlike_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int rotlike_get_tars ( bConstraint con,
ListBase list 
) [static]
static void rotlike_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 1636 of file constraint.c.

References bConstraint::data, and bChildOfConstraint::tar.

static void rotlike_new_data ( void *  cdata) [static]

Definition at line 1629 of file constraint.c.

References bRotateLikeConstraint::flag, ROTLIKE_X, ROTLIKE_Y, and ROTLIKE_Z.

static void rotlimit_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
) [static]
static void samevolume_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
) [static]
static void samevolume_new_data ( void *  cdata) [static]
static void shrinkwrap_evaluate ( bConstraint UNUSEDcon,
bConstraintOb cob,
ListBase targets 
) [static]
static void shrinkwrap_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static void shrinkwrap_get_tarmat ( bConstraint con,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
) [static]
static int shrinkwrap_get_tars ( bConstraint con,
ListBase list 
) [static]
static void shrinkwrap_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 3416 of file constraint.c.

References bConstraint::data, and bShrinkwrapConstraint::target.

static void sizelike_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void sizelike_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int sizelike_get_tars ( bConstraint con,
ListBase list 
) [static]
static void sizelike_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 1749 of file constraint.c.

References bConstraint::data, and bSizeLikeConstraint::tar.

static void sizelike_new_data ( void *  cdata) [static]

Definition at line 1742 of file constraint.c.

References bSizeLikeConstraint::flag, SIZELIKE_X, SIZELIKE_Y, and SIZELIKE_Z.

static void sizelimit_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase UNUSEDtargets 
) [static]
void solve_constraints ( ListBase conlist,
bConstraintOb cob,
float  ctime 
)
static void splineik_copy ( bConstraint con,
bConstraint srccon 
) [static]

Definition at line 3720 of file constraint.c.

References bConstraint::data, MEM_dupallocN(), and bSplineIKConstraint::points.

static void splineik_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static void splineik_free ( bConstraint con) [static]

Definition at line 3711 of file constraint.c.

References bConstraint::data, MEM_freeN(), and bSplineIKConstraint::points.

static void splineik_get_tarmat ( bConstraint UNUSEDcon,
bConstraintOb cob,
bConstraintTarget ct,
float   UNUSEDctime 
) [static]
static int splineik_get_tars ( bConstraint con,
ListBase list 
) [static]
static void splineik_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 3736 of file constraint.c.

References bConstraint::data, and bSplineIKConstraint::tar.

static void splineik_new_data ( void *  cdata) [static]

Definition at line 3729 of file constraint.c.

References bSplineIKConstraint::chainlen.

static void stretchto_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void stretchto_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int stretchto_get_tars ( bConstraint con,
ListBase list 
) [static]
static void stretchto_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 2716 of file constraint.c.

References bConstraint::data, and bStretchToConstraint::tar.

static void stretchto_new_data ( void *  cdata) [static]
static void trackto_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void trackto_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int trackto_get_tars ( bConstraint con,
ListBase list 
) [static]
static void trackto_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 930 of file constraint.c.

References bConstraint::data, and bTrackToConstraint::tar.

static void trackto_new_data ( void *  cdata) [static]
static void transform_evaluate ( bConstraint con,
bConstraintOb cob,
ListBase targets 
) [static]
static void transform_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int transform_get_tars ( bConstraint con,
ListBase list 
) [static]
static void transform_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 3278 of file constraint.c.

References bConstraint::data, and bTransformConstraint::tar.

static void transform_new_data ( void *  cdata) [static]

Definition at line 3269 of file constraint.c.

References bTransformConstraint::map.

static void translike_evaluate ( bConstraint UNUSEDcon,
bConstraintOb cob,
ListBase targets 
) [static]
static void translike_flush_tars ( bConstraint con,
ListBase list,
short  nocopy 
) [static]
static int translike_get_tars ( bConstraint con,
ListBase list 
) [static]
static void translike_id_looper ( bConstraint con,
ConstraintIDFunc  func,
void *  userdata 
) [static]

Definition at line 1839 of file constraint.c.

References bConstraint::data, and bTransLikeConstraint::tar.

void unique_constraint_name ( bConstraint con,
ListBase list 
)

Definition at line 98 of file constraint.c.

References BLI_uniquename(), and bConstraint::name.

Referenced by add_new_constraint().

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

Variable Documentation

bConstraintTypeInfo* constraintsTypeInfo[NUM_CONSTRAINT_TYPES] [static]

Definition at line 3938 of file constraint.c.

Initial value:

Definition at line 3251 of file constraint.c.

Referenced by constraints_init_typeinfo().

short CTI_INIT = 1 [static]

Definition at line 3939 of file constraint.c.

Initial value:

Definition at line 1611 of file constraint.c.

Referenced by constraints_init_typeinfo().

Initial value:
 {
        CONSTRAINT_TYPE_LOCLIMIT, 
        sizeof(bLocLimitConstraint), 
        "Limit Location", 
        "bLocLimitConstraint", 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        loclimit_evaluate 
}

Definition at line 1402 of file constraint.c.

Referenced by constraints_init_typeinfo().

Initial value:

Definition at line 3916 of file constraint.c.

Referenced by constraints_init_typeinfo().

Initial value:

Definition at line 3065 of file constraint.c.

Referenced by constraints_init_typeinfo().

Initial value:

Definition at line 1724 of file constraint.c.

Referenced by constraints_init_typeinfo().

Initial value:
 {
        CONSTRAINT_TYPE_ROTLIMIT, 
        sizeof(bRotLimitConstraint), 
        "Limit Rotation", 
        "bRotLimitConstraint", 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        rotlimit_evaluate 
}

Definition at line 1460 of file constraint.c.

Referenced by constraints_init_typeinfo().

Initial value:
 {
        CONSTRAINT_TYPE_SAMEVOL, 
        sizeof(bSameVolumeConstraint), 
        "Maintain Volume", 
        "bSameVolumeConstraint", 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        samevolume_new_data, 
        NULL, 
        NULL, 
        NULL, 
        samevolume_evaluate 
}

Definition at line 1940 of file constraint.c.

Referenced by constraints_init_typeinfo().

Initial value:
 {
        CONSTRAINT_TYPE_SIZELIMIT, 
        sizeof(bSizeLimitConstraint), 
        "Limit Scaling", 
        "bSizeLimitConstraint", 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        sizelimit_evaluate 
}

Definition at line 1520 of file constraint.c.

Referenced by constraints_init_typeinfo().

Initial value:

Definition at line 1883 of file constraint.c.

Referenced by constraints_init_typeinfo().

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 3625 of file constraint.c.